硬汉嵌入式论坛

 找回密码
 立即注册
查看: 476|回复: 2
收起左侧

Keil制作的烧录算法,运行不了

[复制链接]

4

主题

30

回帖

42

积分

新手上路

积分
42
发表于 2025-8-14 17:03:58 | 显示全部楼层 |阅读模式
1、问题描述:

    使用STM32CubeProgrammer自带的烧录算法模板Keil工程-制作烧录STM32F429ZG外置SPI-Flash的算法,使用的SPI5接口,软件片选。制作完成后,放到STM32CubeProgrammer指定目录,然后调用该烧录算法。不管点击读、写,还是擦除,都不正常。示波器测不到SPI波形。
2、调试过程:
    1)通过在Loader_Src.c文件的Init()函数中,增加一个GPIO控制的LED,通过其来指示状态,程序中LED可以正常工作,说明Init函数被调用了,时钟有初始化。AHB1时钟是运行的,因为GPIO的时钟来源是AHB1。
    2)怀疑SPI的时钟没有使能,通过查询RCC_APB2ENR_SPI5EN的状态位,如果RCC_APB2ENR_SPI5EN置1,则点亮LED。实际测试发现LED不亮,说明SPI5时钟确实没有使能。通过规格书查到SPI5时钟来源于APB2,而APB2来源于AHB1。
             SPI5.png
    3)怕代码配置SPI5可能存在问题,代码中增加一个和SPI5处于同APB2时钟源的TIM1,看看APB2时钟源下其他硬件模块能不能工作。实验发现,TIM1一样不能正常工作,查询其时钟也是没使能。
             TIM1EN.png
    4)为了排除TIM1和SPI5初始化代码的问题,新建一个新工程,用同样的TIM1和SPI5初始化代码,可以正常跑起来。
3、问题请教:
    为何相同的程序,在烧录算法工程里面不能正常运行?时钟都配置没成功!但是GPIO的时钟又是配置成功的,该怎么解决?


回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
118328
QQ
发表于 2025-8-16 09:21:00 | 显示全部楼层
将我这里的软件SPI方案用到你的这个程序里面,大大减少硬件配置问题排查

【实战技能】任何支持SWD接口的单片机都可以方便移植的SPI Flash烧写算法制作,含视频说明(2022-05-30)
https://forum.anfulai.cn/forum.php?mod=viewthread&tid=112600
回复

使用道具 举报

4

主题

30

回帖

42

积分

新手上路

积分
42
 楼主| 发表于 2025-8-19 22:33:52 | 显示全部楼层
eric2013 发表于 2025-8-16 09:21
将我这里的软件SPI方案用到你的这个程序里面,大大减少硬件配置问题排查

【实战技能】任何支持SWD接口的 ...

好的 谢硬汉哥
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-9-26 15:14 , Processed in 0.042589 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表