??????///
你是做主機還是做設(shè)備??
不好意思,是“主程序開始先延時100到200MS試試”
你的單片機的撥特率設(shè)置多少??,CH375的默認撥特率為9600,還有串口方式只限于使用主機方式.程序中一些地方的40US延時不需要.
CH375做主機讀寫U盤,單片機的波特率設(shè)置為9600.程序中的延時40US是按照CH375手冊上的命令和數(shù)據(jù)、命令和命令之間的時間間隔設(shè)計的。 按2樓說的先先延時100到200US試試再說,一會給出結(jié)果 謝謝各位關(guān)注!
主程序的延時沒有必要,加入延時是防止在CPU操作CH375時CH375還沒有初始化好,典型值應(yīng)該為40MS.
在上面的主程序段之前有一段程序是測試板上的標志指示燈的,延時已經(jīng)超過40MS了,按照手冊CH375應(yīng)該初始化好了。 哎!結(jié)果還是那樣,怎么辦呢,急死我了!
你沒有發(fā)CMD_RD_USB_DATA命令
為什么要發(fā)CMD_RD_USB_DATA命令? 根據(jù)CH375手冊:發(fā)命令#CMD_CHECK_EXIST后,發(fā)該命令的輸入數(shù)據(jù)如55H,然后CH375輸出的數(shù)據(jù)應(yīng)該是AAH,只要在程序中讀取該數(shù)據(jù)即可,不用發(fā)CMD_RD_USB_DATA命令,該命令是在中斷后使用的.
你看下你返回的數(shù)據(jù)是多少啊??
看不到返回的數(shù)據(jù),在 CHECKR: JBC RI, CHECKR1 AJMP CHECKR 處循環(huán)不往下執(zhí)行
這兩句之前要發(fā)CMD_RD_USB_DATA命令嗎?
不是,你不是發(fā)了個CHECK_EXIT的命令嗎?看這個命令返回的是什么數(shù)據(jù)
是否在發(fā)CHECK_EXIST命令后,緊接著讀取CH375的數(shù)據(jù)?
是在CHECK_EXIT之后讀數(shù)據(jù),你不要在那邊一直的死循環(huán),你先看下如果返回的數(shù)據(jù)不是0XAA,你看下返回的到底是什么數(shù)據(jù),這樣才好分析是什么原因
輸入下面數(shù)據(jù)時,程序陷入死循環(huán),一直在等待375的返回數(shù)據(jù) AAH,2AH,06H,60H,3AH,73H....
那就是你的硬件有問題啊,可能你的串口存在問題