STM32 基础系列教程 28 - USB_DFU
前言
學習stm32 USB接口使用,學會用CUBE工具快速創建USB設備工程及調試,關于usb的相關知道請讀者提前準備并學習,當然如果不想深究其中原理的話,跟著本文來操作就可以實現基于USB的設備開發了。需要提示的是,stm32在使用usb接口功能是一般需要在DP引腳上上拉一個1.5K電阻到3.3V(部分MCU內部會上拉)。
?
示例詳解
基于硬件平臺: STM32F10C8T6最小系統板, MCU 的型號是?STM32F103c8t6, 使用stm32cubemx 工具自動產生的配置工程,使用KEIL5編譯代碼。
?
?
本示例所用的最小系統板原理圖:
?
?
?
?
給工程加入事先準備好的flash.c及flash.h 兩個文件,在usbd_dfu_if.c中加入如下代碼:
?
?
燒錄默認代碼,連上電腦可在電腦的設備管理器中可以看到人全學輸入設備中可以看到stm Device in Dfu mode設備:
安裝好ST在DFU軟件(可從文中給定資料下載方法中下載,也可以自行去官網下載),安裝過程就不講了,下面直接講使用,首先在安裝文件夾下找到 DfuFileMgr.exe 運行它用于生成下載所用的 .dfu 文件,具體過程如下:
?
?
?
?
?
?
?
?
同樣在安裝文件夾下找到DfuSeDemo.exe,運行該工具,按下面圖中所示步驟操作:
?
如下圖便完成對指定flash(0x08004000)空間的數據編寫,實現了基本的DFU功能,要想真正實現DFU功能,還需保證所升級的數據內容在指令的內存空間能被正確執行。
?
?
好了,本節內容就先到此,在此我們學習了USB DFU設備的基本使用情況,文中我們將芯片內部flash空間分成三個區,第一個是0-16k ,用于存放Bootloader代碼,也就是本文工程代碼,第二個是16-56k區間,用于存放app程序,也就是寫進去的數據內容,第三個是56-64K區間,未定義其功能。本節主要講如何用DFU接口,至于怎么編寫APP程序,我們到后面章節再講。
?
OK,本期實驗完成!下期見!同時如果大家有什么疑問或是有想了解的其它內容,也歡迎大家留言!!最后喜歡這個公眾號的同學們記得加關注了,每天都會有技術干貨推出!!
?
?
文中資料及源碼下載,在公眾號里給十三發消息:
下載|STM32基礎系列教程28
?
關注十三公眾號
?
總結
以上是生活随笔為你收集整理的STM32 基础系列教程 28 - USB_DFU的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: STM32 基础系列教程 27 - US
- 下一篇: STM32 基础系列教程 30 - 文件