碰到的问题点:
1.枚举不成功 a.由于USB 不支持仿真,一仿就会出错, 可以选打印printf(), 如果它都不行 只能硬着头皮 一点一点看了.
碰到一个项目, 用KEIL就可以枚举成功, IAR就不行, 怀疑是IAR优化得好, 时序给乱了. 所以枚举不成功, 要注意.
面且BUS HOUND也捉不了包, 这就麻烦. 不知道卡在哪一步. 正常情况下 USB DP 也就是D+ 上拉1.5K, 电脑识别到有设备插入, 马上会发下来设备复位,及描述请求.
b.如果中间有错, 可以用BUS HOUND捉包 分析是哪一步出了问题, 这里就不讲流程了.
2.枚举成功 a.发不了数据 如果只能发少量数据, 一般是加入了报告ID 报告描述需要少描述一个字节 因为不包含ID, 这也是USB 的坑. 另外特别注意就是USB缓存的分配 fifo RAM (一般都会有512B或是1K左右的RAM独立的), 和 HEAP的设置 (如果用到了标准库) 我的USB AUDIO一直发不了数据,找了问题一周, 后面一步一步仿真才找到这个问题点. 花了不少时间找问题,