各位大神好。有两个问题请教:
看例程usb接收都提示不能大于64Byte,这是指一次接收只能接收64字节数据么?如果要接收更多除了扩展缓存还需要哪些操作?
如果让usb原路返回主机发送的数据请问怎么设置?
各位大神好。有两个问题请教:
看例程usb接收都提示不能大于64Byte,这是指一次接收只能接收64字节数据么?如果要接收更多除了扩展缓存还需要哪些操作?
如果让usb原路返回主机发送的数据请问怎么设置?
您好,CH582上是全速USB接口,USB协议规定一包数据只能负载64字节,超过64字节需要分包处理。
CDC例程使用批量传输,注意点①需要配置足够大的ram缓存以确保及时接收,②批量传输的数据量为64字节的倍数(包括64字节)时,最后一包需要接收到/上传一个0字节长度的包,表示批量传输完成。③上一包上传完成后再上传下一包,在CDC例程SendUSBData接口函数中已由Ep1DataINFlag处理,参考其他例程时可以参考编写。
“原路返回”如果在“端点”的层面上,做不到,端点是单向的;在“接口”的层面上可以做到,一个接口可以包含多个端点,包含一个IN端点和一个OUT端点就可以做双向传输。关键是要知悉在哪个端点上/下传。CDC例程中的上传端点也是由SendUSBData管理好的,注意在正确的OUT端点接收数据就好。
收到 我编写下程序试试