求教:CH375A做設(shè)備

我使用 CH375A 做設(shè)備,硬件連接示意圖見(jiàn)下圖所示: 請(qǐng)問(wèn)硬件連接是否有問(wèn)題? 若沒(méi)有問(wèn)題,請(qǐng)問(wèn)為何我在設(shè)置工作模式2后,xReadCH375Data( )獲取的狀態(tài)代碼為 0xFF,而不是 0x51(CMD_RET_SUCCESS)?200710251651920.bmp

你測(cè)試命令是否成功


測(cè)試命令的返回值也是0xFF,所以我想知道是否是硬件連接有錯(cuò)誤?!


測(cè)試命令都沒(méi)過(guò),那么硬件上是有問(wèn)題的,檢查CH375的外圍電路和375與單片機(jī)的接口 你圖中的V3引腳的電容好像是0.1uF的,應(yīng)換為0.01uF


問(wèn)題已經(jīng)解決!不是硬件連接的問(wèn)題!是單片機(jī)寄存器初始化錯(cuò)誤的問(wèn)題! 請(qǐng)問(wèn),如果我想查詢中斷狀態(tài),等待 CH375 設(shè)備接入 PC 機(jī),確認(rèn)接上電腦后,點(diǎn)亮 LED 燈,應(yīng)該如何編寫查詢程序? CH375 設(shè)備接入電腦上之后,中斷狀態(tài)應(yīng)該是什么? 謝謝!


可以參考CH372的手冊(cè),里面有詳細(xì)的流程


CH372DS1.PDF 中介紹的是 CH372 的封裝、電子特性,對(duì)端點(diǎn)緩沖區(qū)進(jìn)行操作的有關(guān)命令,以及數(shù)據(jù)上傳下傳的過(guò)程。 CH372DS2.PDF 中介紹的是 CH372 外部固件的附加命令說(shuō)明,以及外部固件參考流程。 并沒(méi)有看到有關(guān)連接 PC 機(jī)后,查詢中斷返回狀態(tài)的具體說(shuō)明,以及相關(guān)的參考程序舉例。 我還參看了 MCS51C\MCU 文件夾中的 CH372DBG.C 程序,也沒(méi)有找到相關(guān)的示例說(shuō)明。 請(qǐng)問(wèn)哪里能找到:查詢連接 PC 機(jī)后,中斷返回狀態(tài)的示例程序? 謝謝!


你可以參考/ch372/check/pub/test/mcu/test.c


check/pub/test/mcu/test.c 程序完成的是:下傳隨機(jī)長(zhǎng)度的隨機(jī)數(shù)據(jù)包,被單片機(jī)接收并將數(shù)據(jù)按位取反后返回。查詢的中斷狀態(tài)只有:USB_INT_EP2_OUT 和 USB_INT_EP2_IN,程序中說(shuō):其它中斷,未用到,解鎖后退出即可。沒(méi)有找到連接PC機(jī)后返回的中斷狀態(tài)。 另外,我想請(qǐng)問(wèn)一下:如果使用該 test.c 參考程序,能否使用對(duì)應(yīng)的計(jì)算機(jī)端的測(cè)試程序 TEST.EXE 調(diào)試非 51 系列單片機(jī)控制的 CH375 實(shí)現(xiàn)該功能? 如果不能直接使用,需要做那些修改? 謝謝!


我參考 /pub/test/mcu/test.c 的程序,編寫了以下程序: void mCH375Interrupt( void ) { unsigned char i, length; unsigned char buffer[ 64 ]; xQueryInterrupt( ); // 查詢CH375中斷并更新中斷狀態(tài) switch ( CH375IntStatus ) { // 分析中斷狀態(tài)處理 ,使用的是頭文件中定義的狀態(tài)參數(shù)CH375IntStatus case USB_INT_EP2_OUT: { // 批量端點(diǎn)下傳成功 xWriteCH375Cmd( CMD_RD_USB_DATA ); // 從當(dāng)前USB中斷的端點(diǎn)緩沖區(qū)讀取數(shù)據(jù)塊,并釋放緩沖區(qū) length = xReadCH375Data( ); // 首先讀取后續(xù)數(shù)據(jù)長(zhǎng)度 for ( i = 0; i < length; i ++ ) buffer[ i ] = xReadCH375Data( ); // 接收數(shù)據(jù)包 // 測(cè)試數(shù)據(jù)正確性,將接收到的命令包數(shù)據(jù)取反后返回給PC機(jī) xWriteCH375Cmd( CMD_WR_USB_DATA7 ); // 向USB端點(diǎn)2的發(fā)送緩沖區(qū)寫入數(shù)據(jù)塊 xWriteCH375Data( length ); // 首先寫入后續(xù)數(shù)據(jù)長(zhǎng)度,回傳剛接收到的數(shù)據(jù)長(zhǎng)度 for ( i = 0; i < length; i ++ ) xWriteCH375Data( ~ buffer[ i ] ); // 數(shù)據(jù)取反后返回,由計(jì)算機(jī)應(yīng)用程序測(cè)試數(shù)據(jù)是否正確 break; } case USB_INT_EP2_IN: { // 批量數(shù)據(jù)發(fā)送成功 xWriteCH375Cmd( CMD_UNLOCK_USB ); // 釋放當(dāng)前USB緩沖區(qū) break; } default: { // 其它中斷,未用到,解鎖后退出即可 xWriteCH375Cmd( CMD_UNLOCK_USB ); // 釋放當(dāng)前USB緩沖區(qū) break; } } } 但是,打開(kāi) TEST.EXE 之后,程序運(yùn)行返回一直提示:return length error 請(qǐng)問(wèn)可能是何原因?


為什么沒(méi)有人回復(fù)??!!

我調(diào)用 DEBUG372\Release 文件夾中的 DEBUG372.EXE ,可以讀取到 CH375 的設(shè)備信息(廠商ID和設(shè)備ID),但是調(diào)試"端點(diǎn)2下傳"時(shí),"長(zhǎng)度"輸入為:10,"數(shù)據(jù)"輸入為:0123456789,點(diǎn)擊"下傳"按鍵后,程序提示"Down : 5" 請(qǐng)問(wèn)這是不是說(shuō)明實(shí)際只下傳了長(zhǎng)度為 5 的數(shù)據(jù)?如果是,請(qǐng)問(wèn)是何原因造成的? 我點(diǎn)擊“端點(diǎn)2上傳”中的“上傳”按鍵,和“端點(diǎn)1上傳”的“上傳”按鍵,均沒(méi)有數(shù)據(jù)返回,或者程序沒(méi)有響應(yīng)!請(qǐng)問(wèn)是何原因? 請(qǐng)問(wèn)該 DEBUG372.EXE 程序?qū)?yīng)的單片機(jī)設(shè)備端的程序代碼在哪里可以找到?我只在 MCS51C 文件夾中的 CH372DBG.C 參考程序中找到了 “調(diào)試固件程序版本”的源程序,沒(méi)有找到"端點(diǎn)2下傳"、“端點(diǎn)2上傳”和“端點(diǎn)1上傳”的源程序!順便說(shuō)一句,我參考 CH372DBG.C 程序,對(duì)其中寄存器和RAM的名稱和地址做了相應(yīng)的修改,但是調(diào)用與之對(duì)應(yīng)的 CH37XDBG.EXE 程序時(shí),程序也無(wú)法正常工作!


1 .你輸入的數(shù)據(jù)只有5個(gè)字節(jié)長(zhǎng)度,點(diǎn)下傳后程序提示"Down : 5"是正確的. 2.你的單片機(jī)程序中有沒(méi)有處理"端點(diǎn)2上傳"和“端點(diǎn)1上傳",沒(méi)有處理點(diǎn)擊程序肯定沒(méi)有響應(yīng). 3.單片機(jī)端程序?qū)?yīng)的就是ch372/pub/test/mcu/test.c實(shí)現(xiàn)的功能就是端點(diǎn)2下傳再將數(shù)據(jù)取反后上傳.


但是我之前已經(jīng)把參考 test.c 修改的程序發(fā)在上面了,并且運(yùn)行 TEST.EXE 之后,界面提示:return length error。 如果下傳是正確的話,為什么回傳數(shù)據(jù)時(shí)會(huì)返回錯(cuò)誤的數(shù)據(jù)長(zhǎng)度? 請(qǐng)幫忙看一下問(wèn)題可能出在哪里? 謝謝!


上位機(jī)用DEBUG372,下位機(jī)用test.C測(cè)試下傳輸數(shù)據(jù)是不是正常的.看硬件上有沒(méi)有問(wèn)題.


情況和之前一樣! 只能檢測(cè)到有設(shè)備插上,可以獲取廠商和設(shè)備 ID ,可以下傳數(shù)據(jù),但是端點(diǎn)2和端點(diǎn)1無(wú)法上傳數(shù)據(jù)! 點(diǎn)擊端點(diǎn)2和端點(diǎn)1的上傳按鍵之后,界面沒(méi)有反應(yīng)!點(diǎn)擊“關(guān)閉設(shè)備”,再“打開(kāi)設(shè)備”時(shí),就連廠商和設(shè)備 ID 都再讀不出來(lái)了! 請(qǐng)問(wèn)可能是何問(wèn)題?謝謝!


實(shí)際和計(jì)算機(jī)進(jìn)行數(shù)據(jù)通信的時(shí)候,需要下位機(jī)的程序進(jìn)行配合才能進(jìn)行數(shù)據(jù)傳輸,按照你TEST。C的程序就是將上位機(jī)的數(shù)據(jù)收到之后取反在返回給計(jì)算機(jī),并沒(méi)有涉及到中斷端點(diǎn)的上傳和批量端點(diǎn)首先上傳,還有就是如果TEST。C程序和上位機(jī)程序通信出現(xiàn)問(wèn)題的話,那你需要監(jiān)測(cè)下你下位機(jī)程序收到的數(shù)據(jù)是否正常以及你三個(gè)讀寫子函數(shù)時(shí)序上面是否有問(wèn)題


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

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