使用STM32CubeMX 快速生成 USB HID 工程 - STM32F107VCT6

背景

  • 最近在研究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 协议比较复杂些,多实践,才能真正掌握!!

猜你喜欢

转载自blog.csdn.net/tcjy1000/article/details/111502210