STM32F1设备枚举 - 暮光小猿wzt

哔哩哔哩 - ( ゜- ゜)つロ 乾杯~


实验环境

  • 单片机: STM32F103C8T6
  • 编辑器: code
  • 编译器: gcc 8

相关资料


F1入坑三步

  1. 复制库
  2. 初始化
  3. 配置(描述符,端点,缓冲区)

1. 复制库

  • 复制STM32_USB-FS-Device_Lib/Libraries/STM32_USB-FS-Device_Driver中的srcinc到工程
  • 复制本章节示例工程中简化好的配置(usb_conf.h,usb_istr.c,usb_prop.c)到工程

2. 芯片初始化

  • 开启GPIO时钟
  • 配置PA11/12复用模式
  • 配置USB中断优先级
  • 设置USB时钟1.5分频(72/1.5=48MHz)
  • 开启USB时钟

3. 库初始化

  • 在主文件中加入usb_lib.h头文件
  • 在主函数中初始化完成后调用USB_Init()函数
  • 编辑库中的usb_lib.h头文件,替换hw_config.hstm32f10x.h
  • 配置usb_prop.c中Device_Table结构体中总端点数和总配置数(本工程只有端点0和一个配置,所以设置为1和1)

4. 库设备配置

  • 复制上一章节的设备描述符和配置描述符,修改bMaxPacketSize0usb_prop.cDevice_Property结构体的MaxPacketSize一致
  • 分配USB收发缓冲区(具体配置方法说明还在咕~~,可自行参考手册第628页图221研究)