山寨F407板子如何烧录正点原子例程、Keil下载提示Invalid ROM Table

 

山寨F407板子如何烧录正点原子例程

 

手头这块块信赢达的STM32F407板子,是模仿正点原子探索者STM32F407板子的,外设和接口,几乎是一模一样。

探索者板子用的是STM32F407ZET6,  信赢达的是STM32F407ZGT6。

 

如何查看这两颗芯片的区别?两种方法,选其一。

1. 打开两个数据手册自己去对比

2. 打开CubeMX, 进行对比

通过CubeMX来查看芯片的基本信息显然更加直观和高效。

经过CubeMX软件上的芯片介绍,这两颗料的管脚是一样的,RAM大小也一样,唯一的区别是ZET6的FLASH大小是512KB,而ZGT6的FLASH大小是1MB。

所以,管脚都一样,仅FLASH大小的区别而已,应该是可以直接烧录正点原子的例程的。

 

一,于是,直接烧录试试。 烧录一个正点原子的TFT LCD例程。

1.  提示下载错误

2. 百度出来的解决办法

https://blog.csdn.net/yufengzheyang/article/details/76954121

大致意思是要修改晶振频率,适配你的板子。

 

回过头来,细看原理图,发现区别,区别是:

探索者板子用的外部高速晶振(HSE)是8M的,  信赢达的HSE是25M的。

于是我修改了正点原子例程的下面两处

实测烧录成功了。

但是烧进去什么反应也没有,屏幕也是黑的。(PS,我的屏幕就是正点原子的屏幕,3.5寸电阻屏)

 

遗漏了哪个步骤呢?

回忆我对RTThread的使用经验, 其是借助CubeMX来配置时钟的。

我们找到正点原子例程的配置时钟的代码看一下

从这个备注来看,很显然,正点原子的时钟树的配置是按照HSE为8M来配置的。我们烧进例程,程序跑不起来,应该就是这个原因导致的。

我们仅仅修改了外部HSE为25M,却还没有配置好时钟树呢!

于是我们可以通过CubeMX来自动生成时钟树的配置代码,然后复制黏贴到正点原子的此处时钟配置的地方。

TFT LCD例程程序就跑起来了。

 

PS,后记,有时候还是会烧录不进去,提示Invalid ROM Table,修改魔术棒的这里会好些:

我用的是CMSIS-DAP仿真器, SWD下载方式, 接RESET脚,勾选under reset。

 

 

.

posted @ 2021-12-29 23:14  一匹夫  阅读(1112)  评论(0编辑  收藏  举报