STM32F103 DFU功能实现(MXcube)(一)

来源于: 自制17键数字机械键盘(3)——STM32F103 DFU功能实现 - 知乎

STM32F103系列默认没有内置USB DFU功能,不能通过进入DFU模式,通过USB 对程序进行更新,虽然在调试阶段用比如jlink、STlink等仿真器进行程序的烧录更新,但是总是不太方便,毕竟不是人人都有仿真器,不是每个人都是开发者,抱着做产品的态度,还是要方便用户升级,所以有必要实现STM32F103的DFU功能,方便键盘的后续更新升级。这章我用STM32CubeMX实现DFU功能。

1. STM32CubeMX工程建立

首先打开STM32CubeMX,建立一个工程,选择MCU型号为STM32F103C8。

如下图对USB外设进行设置。

MiddleWare设置:

  • Mode选为 Download Fireware Update Class(DFU)。
  • USBD_DFU_APP_DEFAULT_ADD设置为0x08005800,这个地址即为升级时存入升级程序的起始地址,用FLASH中0x08000000~0x08005800 的0x5800/1024=22KB存储空间存储DFU程序。
  • USB_DFU_MEDIA Interface设置为:@Internal Flash /0x08000000/22*001Ka,42*001Kg,其中22*001Ka表示flash的前22KB存储空间为只读(a)的,42*001Kg表示flash后42KB的存储空间可写(g),用于存储升级下载的程序。这个需要按照MCU的flash的Flash module organization修改的,stm32f103c8为中等容量系列mcu,flash为64KB,下图为中等容量MCU的flash存储分布,根据这个图可知stm32f103c8的64KB分为64页,每页1KB,所以可以按照这个按需设置@Internal Flash的值,注意与USBD_DFU_APP_DEFAULT_ADD
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值