ch376連接兩個(gè)單片機(jī)系統(tǒng)通信出錯(cuò),求助!?。?

主機(jī)發(fā)送數(shù)據(jù)的個(gè)數(shù),從機(jī)能夠正確收到,但是所收到的數(shù)據(jù)一個(gè)都不正確,請(qǐng)問(wèn)這是怎么回事!下面是主機(jī)程序 void host_send( unsigned char len, unsigned char *buf ) { /* 主機(jī)發(fā)送 */ wr_usb_data( len, buf ); toggle_send(); F=issue_token( ( 2 << 4 ) | DEF_USB_PID_OUT ); if (F !=USB_INT_SUCCESS ) ERROR(); /* 如果設(shè)備端不是CH37X芯片,那么需要修改端點(diǎn)號(hào) */ if(F!=0)F=0;

main() { unsigned char data_to_send[250], data_by_recv[250]; /* 收發(fā)緩沖區(qū) */ unsigned char i, len; WDTCTL = WDTPW + WDTHOLD; Key_Init(); int_clk(); Display_Init(); _EINT(); s = mInitCH376Host( ); /* 初始化CH376 */ mStopIfError( s ); mDelaymS(200); // 等待USB設(shè)備通電后完全穩(wěn)定 set_usb_mode( 6 ); /* 設(shè)置USB主機(jī)模式, 如果設(shè)備端是CH37X, 那么5和6均可 */ while(1) { if(Key_Flag==1) /* 等待設(shè)備端連接上來(lái) */

{ set_usb_mode( 7 ); /* 復(fù)位USB設(shè)備,CH375向USB信號(hào)線的D+和D-輸出低電平 */ P2IE &= ~BIT0; /* 如果單片機(jī)對(duì)CH375的INT#引腳采用中斷方式而不是查詢方式,那么應(yīng)該在復(fù)制USB設(shè)備期間禁止CH375中斷,在USB設(shè)備復(fù)位完成后清除CH375中斷標(biāo)志再允許中斷 */ for ( i=0; i<250; i++ ) { delay2us(); delay2us(); delay2us(); delay2us(); } /* 復(fù)位時(shí)間不少于1mS,建議為10mS */ set_usb_mode( 6 ); /* 結(jié)束復(fù)位 */ P2IE |= BIT0; while ( wait_interrupt()!=USB_INT_CONNECT ); /* 等待復(fù)位之后的設(shè)備端再次連接上來(lái) */ for ( i=0; i<250; i++ ) delay2us(); /* 有些USB設(shè)備要求延時(shí)數(shù)百毫秒后才能工作 */ for(i=0;i<8;i++) data_to_send[i]=8; //for ( l=0; l<128; ) //{ // l+=63; Buf=&data_to_send[0]; host_send( 8, Buf ); /* 發(fā)送256字節(jié)的數(shù)據(jù)給設(shè)備端 */ // for ( i=0; i<250; i++ ) { delay2us(); delay2us(); delay2us(); delay2us(); } /* 有些USB設(shè)備要求延時(shí)數(shù)百毫秒后才能工作 */ //} Total+=1; Key_Flag=0; } else { Flow_Rate=2; //Total=0; } Display_All(); } }

看你的程序,你連設(shè)備枚舉都沒做,怎么能通訊? USB主機(jī)檢測(cè)到有設(shè)備插入后,要進(jìn)行獲取設(shè)備描述符,分配地址等操作


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

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