CH32F103 USB HOST 驅(qū)動(dòng)CP2102問題

使用CH32F103 USB HOST 驅(qū)動(dòng)CH340的源程序,可以正常操作。驅(qū)動(dòng)CP2102程序顯示能正常連接,但發(fā)不出數(shù)據(jù). 請(qǐng)教!??!USB新手, 有沒有大佬教下如何修改?

icon_rar.gifCH32F103操作CH340.zip


您好,您工程中主機(jī)獲得的端點(diǎn)是固定的(端點(diǎn)2),但實(shí)際cp2102的端點(diǎn)是端點(diǎn)1或其他端點(diǎn)導(dǎo)致枚舉過程獲得的端點(diǎn)信息與實(shí)際收發(fā)數(shù)據(jù)的端點(diǎn)信息不符。修改方法如下,

1667207252190616.png

1667207252195778.png

icon_rar.gifCH32F103操作CH340.zip






張工,您好!感謝幫忙! 程序測(cè)試CP2102 端點(diǎn)是端點(diǎn)1。 第一次發(fā)送數(shù)據(jù)s==ERR_SUCCESS,? 但TXD端還是檢測(cè)不到數(shù)據(jù)。之后發(fā)送數(shù)據(jù)全部返回s==0x2A.?將USBHostTransact函數(shù)timeout?加大也沒有作用。CH340測(cè)試正常。請(qǐng)?jiān)賻兔纯催€有什么問題?謝謝!

/*發(fā)送數(shù)據(jù)長(zhǎng)度*/

UINT8TXDUsbCH341BulkOut( PUINT8 pBuf,UINT8 len )? // 341批量發(fā)送

{

? UINT8 TxCnt,s,endp;

? endp = ThisUsbDev.GpVar[1];

while ( len ) {

Delay_Us( 200 );

R8_UH_TX_LEN = len >= 32 ? 32 : len;

for ( TxCnt = 0; TxCnt != R8_UH_TX_LEN; TxCnt ++ ) {

TxBuffer[ TxCnt ] = *pBuf;

pBuf ++;

}

s = USBHostTransact( USB_PID_OUT << 4 | endp & 0x7F, endp & 0x80 ? RB_UH_R_TOG | RB_UH_T_TOG : 0, 3000 );? // OUT數(shù)據(jù)

if ( s == ERR_SUCCESS ){?

len -= R8_UH_TX_LEN;

endp ^= 0x80;? // 同步標(biāo)志翻轉(zhuǎn)

ThisUsbDev.GpVar[1] = endp;? // 保存同步標(biāo)志位

}

? ? else return( s );

}

? return ERR_SUCCESS;

}



您好,請(qǐng)將您目前的調(diào)試進(jìn)度通過微信發(fā)我,這邊給您看一下。V:19951759326


解決了嗎?能把例程發(fā)出來嗎?


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

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