如图所示,这里使用串口打印 R8_USB_SPEED_TYPE 寄存器的值。
因为实际使用中出现了奇怪的问题,就连续打印5次值用于测试,然后就出现了如图所示的奇怪现象。
为什么这个寄存器的值,每次读取都具有很大的随机性呢。
如图,刚开始枚举的是 USB-HS 设备,第一次读值为1(高速)正确;后面四次读为0(全速),这就有问题了。
然后SETUP过程中,上位机会总线复位一次,这里为了区分设置了计数器累加。
总线复位后,第一次读为0(全速)错误,后面四次读为1(高速)正确。
请问要在什么情况下,这个寄存器的值才能总是读出正确的结果呢?