WCH沁恒单片机
直播中

南风一号

8年用户 955经验值
擅长:EMC/EMI设计
私信 关注
[问答]

CH32V103C8T6用USB HOST与CH340通信问题如何处理?

从CH32F103操作CH340代码移植到CH32V103C8T6,目前可以接受到CH340上传的数据,但是数据发送不过去,程序标志是显示发送成功。

/*发送数据长度*/
UINT8 TXDU***CH341BulkOut( PUINT8 pBuf,UINT8 len )  // 341批量发送
{
    UINT8 TxCnt,s,endp = ThisU***Dev.GpVar[1];

    printf("CH341 Out data: rn");
    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;
            printf("x%02X ",TxBuffer[ TxCnt ]);
            pBuf ++;
        }
        s = USBHostTransact( USB_PID_OUT << 4 | (endp & 0x7F), endp & 0x80 ? RB_UH_R_TOG | RB_UH_T_TOG : 0, 0 );  // OUT数据
        if ( s == ERR_SUCCESS ){
            len -= R8_UH_TX_LEN;
            endp ^= 0x80;  // 同步标志翻转
            ThisU***Dev.GpVar[1] = endp;  // 保存同步标志位
        }
        else
        {
            return( s );
            printf("rn");
        }
    }
    printf("rn");

    return ERR_SUCCESS;
}
/*返回数据接收长度,数据存放RxBuffer*/
UINT8 RXDU***CH341BulkIn( void )  // 341批量接收
{
    UINT8 i,s,len,endp = ThisU***Dev.GpVar[0];

    // CH559传输事务,获取数据,NAK不重试
    s = USBHostTransact( USB_PID_IN << 4 | (endp & 0x7F), endp & 0x80 ? RB_UH_R_TOG | RB_UH_T_TOG : 0, 0 );

    if ( s == ERR_SUCCESS )
    {
        endp ^= 0x80;  // 同步标志翻转
        ThisU***Dev.GpVar[0] = endp;  // 保存同步标志位
        len = R8_USB_RX_LEN;  // 接收到的数据长度
        if ( len )
        {
            printf("CH341 In data: rn");
            for ( i = 0; i < len; i ++ )
                printf("x%02X ",(UINT16)(RxBuffer[i]) );
            printf("rn");
        }
        return len;
    }
    else if ( s != ( USB_PID_NAK | ERR_USB_TRANSFER ) )
        printf("CH341 error %02xrn",(UINT16)s);// 可能是断开了

    return 0;
}
  

回帖(5)

h1654155275.5916

2022-5-23 10:52:15
和CH341T可以实现发送接受,但和CH340N只能接受发送不了
举报

h1654155275.5916

2022-5-23 10:52:22
您好,这边用你的例程与CH340N通信测试没有问题。你可以检查一下是否是你的CH340N出了问题或者引脚接错
举报

马秀英

2022-5-23 10:52:33
那我先买一块CH340N模块在试试,我这是集成在板子上的,与电脑通信就正常,与CH32V103C8T6通信就接收不到。
威廉希尔官方网站 应该不会有什么问题把?

举报

李皓圳

2022-5-23 10:52:38
您好,单看威廉希尔官方网站 感觉没什么问题,主要要确保做主机时那个R11K5要删除掉。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分