参考了这个地址的资料:
上面这個链接写得很详细所以不再赘述,直接上重点以及注意点
在CubeMX里面,有两个参数要设置好以上画框部分。
一个是APP的默认地址
另一个昰DFU接口。用来识别我们bootloader存放起始地址以及占用内存大小还有内部FLASH的扇区划分方式。
APP像往常一样编写以及编译程序需要改动的地址有两個。
但RCC使用LL库发现生成的程序,USB设备无法枚举成功如果GPIO使用LL库,RCC为HAL库发现USB插头插上
PC后,需要较久时间才能反应过来而且DFU下载程序時候的反应也变慢了。
1、刚开始发现功能能实现,但每次由DFU状态转到APP之后复位MCU想要烧写另外的APP。发现PC上USB设备不会重新枚举每次烧写嘟要重新插拔。后来查阅USB的资料发现可以利用“D+”引脚使PC重新枚举USB。资料地址:查看里面的第一个步骤
1;”。这个函数当一个地址被傳入,擦除地址所在扇区我试过改成1后,烧写200多KB程序正常运行证明修改后市没问题的。
将程序修改如下复位MCU后PC会重新枚举设备:
四、按键控制,烧写APP到不同地址
目的是,按下不同按键DFU烧写APP到不同地址,然后开机时按不同按键运行不同的APP。
相应的APP2魔术棒程序起始地址应设为“0x800C000”,大小为“0x74000”
愿意在CSDN捧场下载的:
转载请标明來源代码按BSD-3-Clause授权使用。代码包中包含STM32CubeMX生成的代码使用时应遵循各个文件中标注的使用许可要求。
这样如果DFU程序编译时超过128K编译软件會给出Error提示。
如果计划刷在片内flash的DFU程序后面可以改成:
编写应用程序应注意:不能再把QSPI接口用作其他用处,不能把QSPI的时钟信号关掉否则處理器就取不到指令了。推荐在STM32CubeMX中给QSPI flash的针脚做上标记防止误用。