關(guān)于CH372芯片回傳數(shù)據(jù)有誤問(wèn)題[求助]

我用ch372通過(guò)單片機(jī)接受電腦上下傳的字節(jié),然后 再回傳給電腦,再自己布的電路板上總是在下傳5個(gè)字節(jié),然后回傳給電腦的時(shí)候,單片機(jī)死機(jī),電腦找不到CH372外部端口;但是1,2,3,4,6個(gè)以上字節(jié)都可以正確回傳.. 但是把同樣單片機(jī)同樣的程序放到在貴公司購(gòu)買的CH372學(xué)習(xí)版上,卻無(wú)論是幾個(gè)字節(jié),都可以正確回傳,沒(méi)有這個(gè)問(wèn)題,我仔細(xì)對(duì)比了下電路圖,在CH372部分都是一樣,只是布板位置不同. 請(qǐng)問(wèn)下這可能是我編的軟件有問(wèn)題還是布板有問(wèn)題? 請(qǐng)速答復(fù),謝謝

你自己的板子是用模擬I/O的方式讀寫數(shù)據(jù),命令的嗎?


你可能在發(fā)數(shù)據(jù)時(shí),數(shù)據(jù)長(zhǎng)度05被CH375當(dāng)作收到了復(fù)位命令(0x05)而進(jìn)行了復(fù)位。


我自己的扳子是用總線方式和ch372通訊的. 只有在回傳5個(gè)字節(jié)時(shí)才會(huì)死機(jī),收到5個(gè)字節(jié)不回傳給電腦的情況下,不會(huì)出現(xiàn)找不到硬件的情況. ps:只有在自己的板子上才會(huì)出現(xiàn)這個(gè)情況,在ch372試驗(yàn)板上沒(méi)有這個(gè)現(xiàn)象.


可以不可以將你的3個(gè)讀寫子程序發(fā)出來(lái)看下


CH375_UPLOAD: NOP JNB FLAY_YES,CH375_EXIT_ ;為了防止計(jì)算機(jī)程序沒(méi)有讀取數(shù)據(jù)而導(dǎo)致單片機(jī)一直在此等待,可以計(jì)算超時(shí),參考CH375_UP_INT子程序 JB FLAG_SEND_WAIT,CH375_UPLOAD ;如果正在等待發(fā)送(前次發(fā)送尚未完成)則繼續(xù)等待,超過(guò)正常應(yīng)該取走數(shù)據(jù)的時(shí)間未取走數(shù)據(jù)則認(rèn)定為超時(shí),可以跳出等待 ; CLR EX0 ;為了防止中途被中斷而亂了順序,必須先禁止中斷 MOV DPTR,#CH375_CMD_PORT ;命令口地址 MOV A,#CMD_WR_USB_DATA7 MOVX @DPTR,A ;向USB端點(diǎn)2的發(fā)送緩沖區(qū)寫入數(shù)據(jù)塊 NOP ;如果時(shí)鐘頻率低于16MHz則無(wú)需該指令延時(shí) DEC DPL ;數(shù)據(jù)口地址 MOV A,R7 MOVX @DPTR,A ;首先寫入后續(xù)數(shù)據(jù)長(zhǎng)度 MOV R0,#RECV_BUFFER CH375_UPLOAD_1: MOV A,@R0 INC R0 MOVX @DPTR,A ;發(fā)送數(shù)據(jù) DJNZ R7,CH375_UPLOAD_1 ;繼續(xù)發(fā)送數(shù)據(jù)直至結(jié)束 SETB FLAG_SEND_WAIT ;置等待發(fā)送標(biāo)志 CLR FLAY_YES ; SETB EX0 ;允許中斷 CH375_EXIT_: RET --------------------------------------------------- 這是發(fā)送程序,接收是中斷接受,是CH372試驗(yàn)板自帶的調(diào)試程序,沒(méi)有變動(dòng),發(fā)送是主循環(huán)里檢查到中斷接受到數(shù)就跳到發(fā)送子程序回傳的.


怎么一直沒(méi)人來(lái)回答? 給貴公司技術(shù)支持打電話說(shuō)要發(fā)郵件給他,結(jié)果郵件都發(fā)了3封,時(shí)間過(guò)了一個(gè)禮拜,怎么一點(diǎn)消息都不回?


我們這邊并沒(méi)有收到您發(fā)的郵件,請(qǐng)重新發(fā)一次好嗎? tech@wch.cn


CH375_UPLOAD: NOP JNB FLAY_YES,CH375_EXIT_ ;為了防止計(jì)算機(jī)程序沒(méi)有讀取數(shù)據(jù)而導(dǎo)致單片機(jī)一直在此等待,可以計(jì)算超時(shí),參考CH375_UP_INT子程序 JB FLAG_SEND_WAIT,CH375_UPLOAD ;如果正在等待發(fā)送(前次發(fā)送尚未完成)則繼續(xù)等待,超過(guò)正常應(yīng)該取走數(shù)據(jù)的時(shí)間未取走數(shù)據(jù)則認(rèn)定為超時(shí),可以跳出等待 ; CLR EX0 ;為了防止中途被中斷而亂了順序,必須先禁止中斷 MOV DPTR,#CH375_CMD_PORT ;命令口地址 MOV A,#CMD_WR_USB_DATA7 MOVX @DPTR,A ;向USB端點(diǎn)2的發(fā)送緩沖區(qū)寫入數(shù)據(jù)塊 NOP ;如果時(shí)鐘頻率低于16MHz則無(wú)需該指令延時(shí) NOP NOP;加大延時(shí)試下看可以不可以? NOP DEC DPL ;數(shù)據(jù)口地址 MOV A,R7 MOVX @DPTR,A ;首先寫入后續(xù)數(shù)據(jù)長(zhǎng)度 MOV R0,#RECV_BUFFER CH375_UPLOAD_1: MOV A,@R0 INC R0 MOVX @DPTR,A ;發(fā)送數(shù)據(jù) DJNZ R7,CH375_UPLOAD_1 ;繼續(xù)發(fā)送數(shù)據(jù)直至結(jié)束 SETB FLAG_SEND_WAIT ;置等待發(fā)送標(biāo)志 CLR FLAY_YES ; SETB EX0 ;允許中斷 CH375_EXIT_: RET


只有登錄才能回復(fù),可以選擇微信賬號(hào)登錄

国产91精品新入口,国产成人综合网在线播放,九热这里只有精品,本道在线观看,美女视频a美女视频,韩国美女激情视频,日本美女pvp视频