CH32V103 USB 双向数据传输出错

CH32V103R8T6 的 USB 按照 Bluk 方式传输数据。CH32V103 每次都会等待上次传输完成后再开始传输。


按照:

1. CH32V103 接收计算机传输的数据。

2. CH32V103 处理数据。

3. CH32V103 将数据传输回电脑。

这个流程,USB 工作就是正常的。


按照:

1. 如果数据缓冲区未满,CH32V103 接收计算机传输的数据。并放入缓冲区。

2. 如果数据缓冲区未满,CH32V103 接收计算机传输的数据。CH32V103 处理缓冲中的数据。

3.如果数据缓冲区未满,CH32V103 接收计算机传输的数据。CH32V103 将处理后的数据传输回电脑。

这个流程,Windows 的 USB 函数传输函数就会报错。


好像是CH32V103 和计算机如果同时向对方传输大量数据,就会出错。如果控制流程,保证 CH32V103 向计算机传输数据的时候,计算机暂停传输数据。等到CH32V103数据传输完成,再控制计算机传输数据,就没问题了。


您好,可以看一下描述符中USB批量传输的数据输入(设备到主机)和输出(主机到设备)是否是同一个端点,如果是同一个端点,那此端点同一时间只能上传数据或接收数据,如果是不同端点,输入端点的数据上传和输出端点的数据接收是可以同时进行的;

image.png


端点是不同的:

image.png



只有登录才能回复,可以选择微信账号登录