CH375B作主機鍵盤反應(yīng)慢問題[原創(chuàng)][求助]

我現(xiàn)在用CH375B與51單片機采用并口的連接方式,主要用于讀出USB鍵盤的值,程式是在貴司提供的例程的基礎(chǔ)上修改的,見附件,主要有下面的問題: 1。要按鍵盤上的鍵10秒鐘左右,CH375才產(chǎn)生中斷給單片機,也就是說要按住鍵盤10秒鐘以上才能得到鍵盤的值,松開手后又要等10秒左右才回到全部是0,查了很長時間(差不多1個星期了,還是找不到原因),請幫忙看一下是怎么回事。(我的USB鍵盤是好的,在電腦上可以用) 作過以下的嘗試: 1。程式完全一樣,如果接USB鼠標(biāo),能很快的得到鼠標(biāo)的值,很正常! 2,程式完全一樣,如果在點亮USB鍵盤上的燈之后馬上按下鍵盤的鍵,能很快顯示出鍵值,但松開后,也是要等10秒左右才回到全部是0 UploadImages/2008122910192750.txtUploadImages/2008122910192750.txt

是不是鼠標(biāo)正常而鍵盤不正常?如果是這樣的話換個鍵盤測試一下看看結(jié)果 NUM LOCK,CAPS LOCK,SCROLL LOCK這三個鍵目前還不支持,無法點亮LED 修改了一個程序請測試UploadImages/2008122911164840.rar


編譯時產(chǎn)生錯誤如下: Build target 'Target 1' assembling STARTUP.A51... compiling ch375_host_int_para.c... CH375_HOST_INT_PARA.C(158): error C141: syntax error near 'tog', expected ')' CH375_HOST_INT_PARA.C(160): error C202: 'tog': undefined identifier Target not created

在前面加了unsigned char tog和unsigned char endp_int之后還是提示如下的表達示錯誤 void toggle_recv1( BOOL1 tog ) 將BOOL1去掉之后可以編譯通過,但效果還是與原來的一樣


將BOOL1換成bit就可以編譯過去了 另外你換過鍵盤測試過嗎?這個程序我們一直在用,應(yīng)該沒有多大問題, 你這樣測試一下,你用串口輸出來監(jiān)視鍵值,先不用液晶顯示.


又換了一個鍵盤,按10秒也沒有用 ,我再不用液晶顯示試一下


用串口還是一樣的,下面是直接用串口讀出的值(下面的值是一上電沒有按任何鍵的值) 12 01 00 02 00 00 00 08 f2 04 00 04 44 01 01 02 00 01 config 09 02 22 00 01 01 00 a0 32 config 2 09 02 22 00 01 01 00 a0 32 09 04 00 00 01 03 01 01 00 09 21 11 01 00 01 22 41 00 07 05 81 03 08 00 0a set idle report 05 01 09 06 a1 01 05 07 19 e0 29 15 00 25 01 01 75 01 95 08 81 02 95 01 08 81 01 95 03 01 01 01 05 08 19 01 29 03 91 02 95 05 01 91 01 95 06 06 08 15 00 26 00 05 05 05 07 19 00 2a 00 81 00 00 c0 set report set report failed


下面是用不著Bus Hound取得的值,與上面的有些不同 25.0 CTL 80 06 00 01 00 00 12 00 GET DESCRIPTOR 1.1.0 25.0 DI 12 01 00 02 00 00 00 08 ........ 1.2.0 f2 04 00 04 44 01 01 02 ....D... 1.2.8 00 01 .. 1.2.16 25.0 CTL 80 06 00 02 00 00 09 00 GET DESCRIPTOR 2.1.0 25.0 DI 09 02 22 00 01 01 00 a0 .."..... 2.2.0 32 2 2.2.8 25.0 CTL 80 06 00 02 00 00 22 00 GET DESCRIPTOR 3.1.0 25.0 DI 09 02 22 00 01 01 00 a0 .."..... 3.2.0 32 09 04 00 00 01 03 01 2....... 3.2.8 01 00 09 21 11 01 00 01 ...!.... 3.2.16 22 41 00 07 05 81 03 08 "A...... 3.2.24 25.0 CTL 00 09 01 00 00 00 00 00 SET CONFIG 4.1.0 25.0 CTL 21 0a 00 00 00 00 00 00 SET IDLE 5.1.0 25.0 CTL 81 06 00 22 00 00 81 00 GET DESCRIPTOR 6.1.0 25.0 DI 05 01 09 06 a1 01 05 07 ........ 6.2.0 19 e0 29 e7 15 00 25 01 ..)...%. 6.2.8 75 01 95 08 81 02 95 01 u....... 6.2.16 75 08 81 01 95 03 75 01 u.....u. 6.2.24 25.0 CTL 21 09 00 02 00 00 01 00 SET REPORT 7.1.0 25.0 DO 01 . 7.2.0 26 DO 00 01


下面是用不著Bus Hound取得的值,與上面的有些不同 這句應(yīng)是:下面是用Bus Hound取得的值,與上面的有些不同

不同點在3.2.24以后


是一樣的,沒什么區(qū)別,你看到的少了一些數(shù)據(jù)是由于MAX PHASE設(shè)置過小,從而無法顯示.設(shè)置大點就可以正常顯示了.你的程序在 if(set_report()!=1); printf("set report failed\n"); 多了一個;號.所以會顯示set report failed.現(xiàn)在用串口測試結(jié)果如何?


用并口去掉;就不顯示set report failed,但現(xiàn)象還是與原來的一樣!

今天白天出了一天差,晚上接了一下串口的,測試時沒有反應(yīng),燈都不亮了, 懷疑是波特率設(shè)定的不對,看規(guī)格書375的波特率在默認(rèn)狀態(tài)下是9600, 因此將單片機也設(shè)定成了9600(試過單片機用9600可正常的發(fā)送數(shù)據(jù))。 又用如下的指令將波特率設(shè)定成了9600, void CH375_SET_BAUDRATE() { /* 設(shè)定波特率 */ delay2us(); CH375_CMD_PORT=0x02; delay2us(); CH375_CMD_PORT=0x02; delay2us(); CH375_CMD_PORT=0xb2; //9600 delay2us(); 還是不行,現(xiàn)在太晚了,明天再試!


你原來不是用的并口嗎?用串口的話要設(shè)置為9位的,并且printf一定要去掉.


用串口方式,可以將鍵盤上的LED點亮了,但是按一下按鍵之后再按就沒有反應(yīng)了,先不調(diào)這個了 又收到了兩片374的樣品,再用374試一下


我也在做這個實驗,剛拿到模塊,CH375B做主機的一個測試.


如果試驗成功了,不妨將原理圖及整個工程發(fā)表上來,我也學(xué)習(xí)一下,現(xiàn)在正在用374在調(diào),用的程式也是在網(wǎng)站上的例子,但其中的H文件都是到處找的,現(xiàn)在燈點亮了,但不停的產(chǎn)生中斷,如下面所示,正找原因,感覺要用375或374還得花時間研究一下USB方面較深的知識。 00 00 80 00 d5 00 00 f0 00 04 8f ff 00 ff 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 28 cc 54 67 62 48 04 90 16 bb 12 5e 54 68 38 25 e8 20 f0 58 03 81 57 76 28 b8 04 c4 6e 4a 28 5a Start CH374 Host Reset Device Start Low-Speed Device GetDeviceDescr: device_status=14 12 01 00 02 00 00 00 08 F2 04 00 04 44 01 01 02 00 01 address_status=14 09 02 22 00 09 02 22 00 01 01 00 A0 32 09 04 00 00 01 03 01 01 00 09 21 11 01 00 01 22 41 00 07 05 81 03 08 00 0A hid_des_leng=41 endp_in_addr=08 endp_out_addr=00 config_status=14 SetUsbConfig_success Set_Idle Set_idle success Get_Hid_Des HID_Desc: 05 01 09 06 a1 01 05 07 19 e0 29 e7 15 00 25 01 75 01 95 08 81 02 95 01 75 08 81 01 95 03 75 01 05 08 19 01 29 03 91 02 95 05 75 01 91 01 95 06 75 08 15 00 26 ff 00 05 07 19 00 2a ff 00 81 00 c0 Set_Report Set_Report success s:20 s:20 s:20 s:20 s:20 s:20 s:20 s:20 s:20 s:20 s:20 s:20 s:20 s:20 s:20 s:20 s:20 s:20 s:20 s:20 s:20 s:20 s:20 s:20 s:20 s:20 s:20 下面全部都是S:20;中斷指示燈不停的閃亮


如果試驗成功了,不妨將原理圖及整個工程發(fā)表上來,我也學(xué)習(xí)一下,現(xiàn)在正在用374在調(diào),用的程式也是在網(wǎng)站上的例子,但其中的H文件都是到處找的,現(xiàn)在燈點亮了,但不停的產(chǎn)生中斷,如下面所示,正找原因,感覺要用375或374還得花時間研究一下USB方面較深的知識。 00 00 80 00 d5 00 00 f0 00 04 8f ff 00 ff 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 28 cc 54 67 62 48 04 90 16 bb 12 5e 54 68 38 25 e8 20 f0 58 03 81 57 76 28 b8 04 c4 6e 4a 28 5a Start CH374 Host Reset Device Start Low-Speed Device GetDeviceDescr: device_status=14 12 01 00 02 00 00 00 08 F2 04 00 04 44 01 01 02 00 01 address_status=14 09 02 22 00 09 02 22 00 01 01 00 A0 32 09 04 00 00 01 03 01 01 00 09 21 11 01 00 01 22 41 00 07 05 81 03 08 00 0A hid_des_leng=41 endp_in_addr=08 endp_out_addr=00 config_status=14 SetUsbConfig_success Set_Idle Set_idle success Get_Hid_Des HID_Desc: 05 01 09 06 a1 01 05 07 19 e0 29 e7 15 00 25 01 75 01 95 08 81 02 95 01 75 08 81 01 95 03 75 01 05 08 19 01 29 03 91 02 95 05 75 01 91 01 95 06 75 08 15 00 26 ff 00 05 07 19 00 2a ff 00 81 00 c0 Set_Report Set_Report success s:20 s:20 s:20 s:20 s:20 s:20 s:20 s:20 s:20 s:20 s:20 s:20 s:20 s:20 s:20 s:20 s:20 s:20 s:20 s:20 s:20 s:20 s:20 s:20 s:20 s:20 s:20 下面全部都是S:20;中斷指示燈不停的閃亮


這個線路連接圖在哪里有?程序中是用的P1口,不用P0作為數(shù)據(jù)總線嗎?

我只找到了CH375中文手冊(一),那中文手冊(二)在哪里呢?先謝謝各位了。


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

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