stm32f072 usb 重枚举
usb 需要支持 keypad 和 hid 功能,能在两者之间切换,如何实现host 重枚举功能?
此问题,建议不要重枚举,不好搞。
可以做成 keypad+hid的复合设备,这样同时都有效。可以通过IO或HID发送命令字的方式来区分,当时处于什么模式,程序中可以只响应一个的操作。 通常是用GPIO,控制断开一下USB的D+线上面的上拉电阻。 参考ST-LINK仿真器的图纸(局部):
F072 的USB Device已经集成了D+线的上拉电阻,外面不要再加电阻。 在USB BCDR寄存器里面可以控制上拉的使能、关闭,就可以重新枚举了。
使能上拉 USB->BCDR |= USB_BCDR_DPPU;
取消上拉 USB->BCDR &= ~USB_BCDR_DPPU; 参考nucleo 144带USB的板子。和三楼的电路一样。但是二楼的方法更普遍。如果把三楼的三极管换成mos管比如si2301或者ao3401电路更简单
页:
[1]