STM32 DFU Demo
前言
基于STM32F072 的DFU历程,适用于带USB接口的MCU,方便易用。本文主要介绍BOOT&APP的制作过程
感谢
实验环境
硬件准备
- STM32F072B - DISCO
- Mini USB数据线两根
软件准备
- Keil 5.25
- STM32Cube F0 V1.11.0
- STM32 CubeMX 5.1
- DfuSeDemo V3.0.6
BOOT_Project
Cubemx配置
配置USB为Device模式
配置USB Device为DFU模式,并且修改DFU模式下APP的模式起始地址
配置指示LED、进入APP按键、SWD下载口
配置时钟树(USB要求时钟最小48Mhz,因此配置为48Mhz)
配置工程相关设置、生成代码
移植代码
生成代码的目录如下
- USB 库文件
- USB 配置文件
- USB上层文件配置
修改USB上层文件usb_dfu_if.c
1 | static uint16_t MEM_If_Init_FS(void);//flash 初始化 |
1 | uint16_t MEM_If_Init_FS(void) |
1 | /** |
1 | /** |
1 |
|
1 | /** |
1 | /** |
- 增加对应宏定义 usbd_conf.h
1 |
|
- 在主函数中增加相关逻辑控制
1 | /* USER CODE BEGIN PFP */ |
1 | //MX_USB_DEVICE_Init(); |
1 | void Bootloader_JumpToApplication(void) |
APP_Project
- 待续
DFU 上位机测试
- 待续