CH375_CMD_PORT = CMD_WR_USB_DATA7; delay2us(); CH375_DAT_PORT = 64; CH375_DAT_PORT = *test++; CH375_DAT_PORT = *test++; CH375_DAT_PORT = *test++; 本来要送64个,要是只发了三个,这是USB主机要取,这个时候是怎么处理的。? 就只读这三个数过去吗》? 同样,USB主机发过来的数,还没取完,USB主机又要发数据,这又怎么处理的。?
查看: 3664
回复: 6
[求助]发送数据过程中USB主机要取数据怎么办?
热门产品 :
CH585: 集成高速USB和NFC的蓝牙MCU
这时还没解锁或读取数据,不会出现你所描述的情况,建议你看看CH372做设备的外置固件程序
如果你的发送程序不是在上传成功中断里呢》? 中断过来只是起了个解锁的作用
建议你先看看372DS2.pdf中,外置固件的流程。
在372芯片里面,实际会根据你写的数据长度来接收你发送的数据,如果写的数据长度是64字节,而写进去的数据只有三个字节的话,这个时候,372会一直等待你后面61个字节的数据写到372里面去,否则372会一直在等待你后续的数据写进来。即使上位机取数据的话也是取不到数据的。
谢谢谢谢,太感谢了。 读不到数据是啥意思,是等待有64个数了再读呢》?还是读到0个数?
最低层的USB通信是计算机要能正确的读取到372的数据的话,必须要2个条件同时符合才可以,一个就是372将数据准备好,另外一个就是372给计算机返回ACK,按照你上面的说法,372没有将数据准备好,所以计算机就读取不到数据,计算机一直在等待64字节的数据。
请勿发布广告和违法内容, 代码可以选择编辑器代码语言格式, 更易他人阅读帮助您, 或者留下联系方式,以便更好更快服务您
只有登录才能回复,可以选择微信账号登录