[求助]关于ch376中的 设置USB事务操作的重试次数 寄存器 设置的疑惑

对于在CH376中 #define CMD20_SET_RETRY 0x0B/* 主机方式: 设置USB事务操作的重试次数 */ /* 输入: 数据25H, 重试次数 */ /* 位7为0则收到NAK时不重试, 位7为1位6为0则收到NAK时无限重试, 位7为1位6为1则收到NAK时最多重试3秒, 位5~位0为超时后的重试次数 */

这个有点疑惑,想问下,按照上面的说明,位5~位0 为重试次数,那么计算可知,最大重试次数应该为63次,而又写着最多重试3s。我想问的是,那么每次重试之间的间隔是多少时间呢? 比如我设置了10次重试,那么每次重试之间的时间是多少?

因为我还要等重试完 然后重新定时 发查询USB数据的指令,怕有冲突了

这个问题你算一下就可以知道怎么来做了。 你用CP2102假设波特率为115200BPS,也就是大概10KB/S 1MS的能传输的数据的最大长度为11个左右,而CP2102的端点缓冲64字节,也就是说在115200BPS下,CP2102最少能够缓冲大约5MS的数据,(不考虑CP2102内部的其他缓冲区)所以你可以定时4MS来查询一次,而且无需重试即可。USB传输1MS为一帧,一帧内可以安排多次事务(IN,OUT等等为事务)。


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