wendsky123 发表于 2018-12-7 14:33:26

stm32f072 usb 重枚举




usb 需要支持 keypad 和 hid 功能,能在两者之间切换,如何实现host 重枚举功能?

toofree 发表于 2018-12-7 23:12:55

此问题,建议不要重枚举,不好搞。
可以做成 keypad+hid的复合设备,这样同时都有效。可以通过IO或HID发送命令字的方式来区分,当时处于什么模式,程序中可以只响应一个的操作。

radio2radio 发表于 2018-12-9 00:15:08

通常是用GPIO,控制断开一下USB的D+线上面的上拉电阻。 参考ST-LINK仿真器的图纸(局部):

cruelfox 发表于 2018-12-11 11:15:06

F072 的USB Device已经集成了D+线的上拉电阻,外面不要再加电阻。 在USB BCDR寄存器里面可以控制上拉的使能、关闭,就可以重新枚举了。
使能上拉   USB->BCDR |= USB_BCDR_DPPU;
取消上拉   USB->BCDR &= ~USB_BCDR_DPPU;

watershade 发表于 2018-12-11 21:05:15

参考nucleo 144带USB的板子。和三楼的电路一样。但是二楼的方法更普遍。如果把三楼的三极管换成mos管比如si2301或者ao3401电路更简单
页: [1]
查看完整版本: stm32f072 usb 重枚举