是不是只能對端點(diǎn)進(jìn)行單向操作?

我根據(jù)你們的ch372上位機(jī)自己也編了一個(gè)上位機(jī),增加了一個(gè)端點(diǎn)1的下傳部分,在上位機(jī)部分可以通過兩個(gè)端點(diǎn)傳輸數(shù)據(jù)到單片機(jī),但是再從單片機(jī)返回?cái)?shù)據(jù)到上位機(jī)則只能向USB端點(diǎn)2的發(fā)送緩沖區(qū)寫入數(shù)據(jù)塊或只能向USB端點(diǎn)1的發(fā)送緩沖區(qū)寫入數(shù)據(jù)塊,不能端點(diǎn)2接收的數(shù)據(jù)寫到端點(diǎn)2的發(fā)送緩沖區(qū),而端點(diǎn)1寫到端點(diǎn)1的發(fā)送緩沖區(qū),在上位機(jī)部分端點(diǎn)2的能顯示,而端點(diǎn)1的不能顯示,希望指點(diǎn)一下,謝謝。下面是源程序,是在例子程序中稍微改了一下。

void mCh375Interrupt( ) interrupt 0 using 1 { unsigned char InterruptStatus; unsigned char i, length; unsigned char data buffer[ 64 ]; CH375_WR_CMD_PORT( CMD_GET_STATUS ); InterruptStatus = CH375_RD_DAT_PORT( ); switch ( InterruptStatus ) {

case USB_INT_EP2_OUT: { CH375_WR_CMD_PORT( CMD_RD_USB_DATA ); length = CH375_RD_DAT_PORT( ); for ( i = 0; i < length; i ++ ) buffer[ i ] = CH375_RD_DAT_PORT( ); //CH375_WR_CMD_PORT( CMD_WR_USB_DATA7 ); CH375_WR_CMD_PORT( CMD_WR_USB_DATA5 ); CH375_WR_DAT_PORT( length ); for ( i = 0; i < length; i ++ ) CH375_WR_DAT_PORT( buffer[ i ] ); //P1=buffer[0]; // 測試電壓 break; }

case USB_INT_EP1_OUT: { CH375_WR_CMD_PORT( CMD_RD_USB_DATA ); length = CH375_RD_DAT_PORT( ); for ( i = 0; i < length; i ++ ) buffer[ i ] = CH375_RD_DAT_PORT( ); //CH375_WR_CMD_PORT( CMD_WR_USB_DATA7 ); CH375_WR_CMD_PORT( CMD_WR_USB_DATA5 ); CH375_WR_DAT_PORT( length ); for ( i = 0; i < length; i ++ ) CH375_WR_DAT_PORT( buffer[ i ] ); P1=buffer[0]; // 測試電壓 break; }

case USB_INT_EP2_IN: { CH375_WR_CMD_PORT( CMD_UNLOCK_USB ); break; } case USB_INT_EP1_IN: { CH375_WR_CMD_PORT( CMD_UNLOCK_USB ); break; } default: { CH375_WR_CMD_PORT( CMD_UNLOCK_USB ); break; } } }

main( ) { Delay50ms( ); CH375_Init( ); EA = 1; while ( 1 ); }

你上面的程序沒有什么問題啊,這個(gè)程序有一個(gè)小問題就是在你通過端點(diǎn)2下傳數(shù)據(jù)的時(shí)候,數(shù)據(jù)長度不能超過8個(gè),否則中斷端點(diǎn)數(shù)據(jù)是上傳不上去的,還有就是你不能通信的話和你上位機(jī)的程序也有關(guān)系,實(shí)際你可以用我們的CH372DUG這個(gè)軟件來調(diào)試你下位機(jī)的程序。


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

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