初涉USB,初學(xué)者USB入門總結(jié)(5)USB上位機(jī)讀寫開(kāi)發(fā)
固件的程序和驅(qū)動(dòng)編寫好了后,把設(shè)備插入就可以正確識(shí)別到,接下來(lái)的工作就是如何用上位機(jī)讀寫設(shè)備了。其實(shí)讀寫操作跟讀寫串口一致的,就是用file進(jìn)行操作。關(guān)鍵是打開(kāi)設(shè)備,下面是我用到的程序,這里都貼出來(lái)吧,我都是用這個(gè)的,供大家參考,呵呵,如果剛開(kāi)始弄的話,估計(jì)得弄上個(gè)一個(gè)星期才行,用這個(gè)程序修改一下,兩分鐘搞定。
其中GUID ClassGuid是你在驅(qū)動(dòng)中生成的一個(gè)號(hào),它必須跟你的驅(qū)動(dòng)對(duì)應(yīng)起來(lái),這個(gè)號(hào)的位置在驅(qū)動(dòng)程序的XXXDeviceInterface.h中的#define XXXDevice_CLASS_GUID ....(XXX表示你起的工程名字)。把這個(gè)號(hào)替換之后用FpOpenDevice打開(kāi)設(shè)備,得到一個(gè)讀句柄,一個(gè)寫句柄,然后在自己的程序中用readfile和writefile讀寫設(shè)備就可以了,注意,不管是讀還是寫,都是主機(jī)發(fā)出的,設(shè)備不能主動(dòng)發(fā)發(fā)數(shù)據(jù)。比如上位機(jī)中運(yùn)行readfile,就會(huì)發(fā)送一個(gè)IN指令,設(shè)備接到IN指令后,會(huì)把緩沖區(qū)的內(nèi)容發(fā)出。
對(duì)于初學(xué)總結(jié)就先介紹到這里,謝謝大家的支持
希望大家多多分享自己開(kāi)發(fā)的經(jīng)驗(yàn),在開(kāi)發(fā)學(xué)習(xí)中遇到的問(wèn)題和困惑可能其他人都會(huì)有碰到,與其自己把這些心得憋在肚子里讓大家都走一遍彎路不如把自己的經(jīng)驗(yàn)與別人分享,這樣不但自己有個(gè)總結(jié)再個(gè)使別人收益,何樂(lè)而不為,獨(dú)樂(lè)樂(lè)不如眾樂(lè)樂(lè),于是而也。
其實(shí)開(kāi)發(fā)也是一件具有藝術(shù)與哲學(xué)的事情,說(shuō)其藝術(shù),是其任憑你想象,散發(fā)的無(wú)邊無(wú)際。說(shuō)其有哲理,是萬(wàn)事皆有因,順其自然(自然即客觀規(guī)律),必能找其根本,體味其中奧妙,其樂(lè)無(wú)窮~
評(píng)論