ch582 CDC处理问题

各位大神好。有两个问题请教:

  1. 看例程usb接收都提示不能大于64Byte,这是指一次接收只能接收64字节数据么?如果要接收更多除了扩展缓存还需要哪些操作?

  2. 如果让usb原路返回主机发送的数据请问怎么设置?

您好,CH582上是全速USB接口,USB协议规定一包数据只能负载64字节,超过64字节需要分包处理。

CDC例程使用批量传输,注意点①需要配置足够大的ram缓存以确保及时接收,②批量传输的数据量为64字节的倍数(包括64字节)时,最后一包需要接收到/上传一个0字节长度的包,表示批量传输完成。③上一包上传完成后再上传下一包,在CDC例程SendUSBData接口函数中已由Ep1DataINFlag处理,参考其他例程时可以参考编写。

“原路返回”如果在“端点”的层面上,做不到,端点是单向的;在“接口”的层面上可以做到,一个接口可以包含多个端点,包含一个IN端点和一个OUT端点就可以做双向传输。关键是要知悉在哪个端点上/下传。CDC例程中的上传端点也是由SendUSBData管理好的,注意在正确的OUT端点接收数据就好。


收到 我编写下程序试试


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