山寨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。

 

 

.

/************* 社会的有色眼光是:博士生、研究生、本科生、车间工人; 重点大学高材生、普通院校、二流院校、野鸡大学; 年薪百万、五十万、五万; 这些都只是帽子,可以失败千百次,但我和社会都觉得,人只要成功一次,就能换一顶帽子,只是社会看不见你之前的失败的帽子。 当然,换帽子决不是最终目的,走好自己的路就行。 杭州.大话西游 *******/
原文地址:https://www.cnblogs.com/happybirthdaytoyou/p/15746897.html