参考硬汉嵌入式:【实战技能】任何支持SWD接口的单片机都可以方便移植的SPI Flash烧写算法制作_哔哩哔哩_bilibili
该up主提供的stm32H7的模板工程,目前需求是实现基于正点原子探索者stm32f407zet6+W25Q128
下载算法实现步骤
- 使用cubemx建立一个LED工程,主要是配置系统时钟
- 复制系统时钟配置函数
- 复制stm32f4的hal库文件和添加头文件路径
- 添加必要的文件模板工程
- 修改gpio模拟spi外设的引脚system_stm32f4xx.c文件
- 修改FlashDev.c文件的的FlashDevice内部的参数,主要是flash的大小,和算法名称
- 修改输出文件名和mcu型号选择
- 编译生成flm下载算法文件
1.使用cubemx建立一个LED工程,主要是配置系统时钟
1.1 外部时钟
1.2设置主频
1.3生成工程如下
2.复制系统时钟配置函数
2.1复制 stm32f4xx_hal_conf.h 和system_stm32f4xx.c 到user目录下
3.复制stm32f4的hal库文件,添加头文件路径
复制hal库文件
添加头文路径
复制系统时钟配置函数
注意:系统时钟函数必须返回0,表示时钟配置成功,否则初始化就是失败
4.添加必要的文件模板工程
5.修改gpio模拟spi外设的引脚和添加system_stm32f4xx.c文件
硬件连接
spi涉及的gpio配置
GPIOB3======>SPI_CLK
GPIOB4======>SPI_MISO
GPIOB5======>SPI_MOSI
GPIOB6======>SPI_CS
6.修改FlashDev.c文件的的FlashDevice内部的参数,主要是flash的大小,和算法名称
7.修改输出文件名和mcu型号选择
输出文件
修改CPU型号
修改添加宏定义
STM32F407xx
8.最后编译生成flm文件
- flm文件的使用
2.1复制flm文件到指定文件夹
C:\Keil_v5\ARM\Flash
2.2创建一个工程,复制一个字库文件,将字库文件内容存储在外部flash中
添加一个ROM存储区域
添加一个字库文件放置在工程内部,设置字库文件的放置位置
修改存储区域入口
放置编译一优化
-keep=gb2312.o
选择存储区域
添加下载算法
设置算法
下载测试
下载中。。。。
检验中。。。。。
检验完成
代码仓库:https://gitcode.net/u010261063/temp_project#stm32%E9%80%9A%E7%94%A8spi%E4%B8%8B%E8%BD%BD%E7%AE%97%E6%B3%95%E5%AE%9E%E7%8E%B0