STM32 USB_Device(DFU_Standalone)-1
前言
目前,ST的USB驅動有兩套,一套是早期的獨立版USB驅動,官方培訓文件中稱為Legacy library;一套為針對其Cube系列的驅動,根據晶片不同可能有區別,具體見對應晶片的Cube驅動包,官方培訓文件中稱為Cube library。
USB結構
下圖為USB應用整體系統架構
USB device library
USB驅動的整個驅動庫的架構如下圖:
USB device library process
USB device library 使用方法
- 整理需要的源代碼:USB OTG源碼、USB Device Core源碼、USB Device Class 源碼
第二步: 在usb_bsp.c/h文件中,實現 USB 需要使用的底層硬件資源。具體函數見上文及附件源碼文件的註釋。
第三步: 在文件usbd_desc.c/h文件中,實現USB Device的各種描述符。具體函數見上文及附件源碼文件的註釋。
第四步: 根據需要修改usbd_usr.c/h文件。
第五步: 根據源代碼進行各種配置
- USB OTG 配置文件usb_conf.h。具體配置選項見上文及源碼中的註釋。
- USB Device配置文件usbd_conf.h。具體配置選項見上文及源碼中的註釋。
第六步: 實現USB Device所使用的類的源文件。例如本文使用了USB Device 的CDC類,所以上圖中出現了usbd_cdc_vcp.c/h文件。
第七步: 在自己芯片對應的stm32f4xx_it.c文件中添加USB中斷處理函數。
第八步: 在main.c文件中,定義USB_OTG_CORE_HANDLE USB_OTG_dev全局變量,然後調用如下函數初始化USB Device 即可