背景
最近在研究USB Device通信,如USB HID 、USB Device。
使用STM32CubeMX,可以快速生成 USB HID 、USB Device的工程。
学习USB,通过实践的方式,不断使用、代码实现,会更快速的掌握USB应用。
工程搭建
MCU平台:STM32F107VCT6
软件开发IDE: Keil MDK
STM32 USB 引脚
注意USB D+上的上拉电阻
打开:STM32CubeMX,型号输入:STM32F107VC
使能USB:Devcie,注意配置一下USB D+ 上拉控制引脚,这里是PC7
配置系统的时钟:HSE,板子上是【25Mhz】
系统时钟树配置:
系统时钟,72MHz,USB,48MHz。 HSE 25MHz。
生成Keil MDK5 工程
注意SWD下载口,
不要别默认代码禁用,以免下次无法正常下载程序
USB D+上拉:
可以开机后上拉。
USB初次插入
,无法正常识别
断电,再次插入,可以识别。
识别为mouse设备
代码初步分析:
原来STM32生成的工程里,把USB HID配置为鼠标(Mouse) HID 设备。
总结:
USB HID,因为上电后就初始化了,所以,中途不断电的情况下,再次插入,就无法正常的枚举!!
断电,插入USB,可以正常的枚举。
所以,系统不断电的情况下,最好控制USB D+的上拉。
最好检测USB插入后,在初始化USB 设备。
USB 协议比较复杂些,多实践,才能真正掌握!!
背景
最近在研究USB Device通信,如USB HID 、USB Device。
使用STM32CubeMX,可以快速生成 USB HID 、USB Device的工程。
学习USB,通过实践的方式,不断使用、代码实现,会更快速的掌握USB应用。
工程搭建
MCU平台:STM32F107VCT6
软件开发IDE: Keil MDK
STM32 USB 引脚
注意USB D+上的上拉电阻
打开:STM32CubeMX,型号输入:STM32F107VC
使能USB:Devcie,注意配置一下USB D+ 上拉控制引脚,这里是PC7
配置系统的时钟:HSE,板子上是【25Mhz】
系统时钟树配置:
系统时钟,72MHz,USB,48MHz。 HSE 25MHz。
生成Keil MDK5 工程
注意SWD下载口,
不要别默认代码禁用,以免下次无法正常下载程序
USB D+上拉:
可以开机后上拉。
USB初次插入
,无法正常识别
断电,再次插入,可以识别。
识别为mouse设备
代码初步分析:
原来STM32生成的工程里,把USB HID配置为鼠标(Mouse) HID 设备。
总结:
USB HID,因为上电后就初始化了,所以,中途不断电的情况下,再次插入,就无法正常的枚举!!
断电,插入USB,可以正常的枚举。
所以,系统不断电的情况下,最好控制USB D+的上拉。
最好检测USB插入后,在初始化USB 设备。
USB 协议比较复杂些,多实践,才能真正掌握!!
举报