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