1. 程式人生 > >STM32 USB的DFU功能

STM32 USB的DFU功能

最近用到USB,後來發現了STM32F103可以程式實現DFU,在網上搜到程式碼對比官方檔案發現是大容量FLASH的DFU,我用的是STM32F103C8T6,屬於中容量。自己對著官方例程修改了網友的程式碼,改成中容量後可以使用DFU更新韌體。修改過程中要注意幾點

1.在庫函式“void SystemInit (void)”結尾處新增向量表偏移量,開全域性中斷(在dfu中關閉了中斷,在此處開啟)。如下圖


2.修改MDK app程式偏移量,如下圖:(預留了20K FLASH給USB DFU使用,所以APP程式碼起始地址0x8005000)


3.APP修改完成後,需要在DFU程式碼中修改APP跳轉地址,如下圖:



修改完成後,使用官方的“DfuSe_Demo_V3.0_Setup.exe”軟體下載即可。


應用環境:下位機-STM32F103C8T6

  DFU程式碼長度16K

APP程式碼長度27K(基於USB-HID類的髮卡器)

上位機-win7 旗艦版64位

DfuSe_Demo_V3.0_Setup.exe