Keil常见编译错误汇总

1. 编译时出现Undefined symbol EXTI_Init (referred from exti.o).

解决:

①检查头文件路径是否添加

②检查相对应的库是否添加。  此处最容易忽略,而本人的错误是没有添加库文件stm32f10x_exti.c

Keil常见编译错误汇总_第1张图片

 

2. 出现 Symbol xxx multiply defined (by exti.o and main.o).

问题:即变量xxx被多重定义,具体出现的原因未知

解决:把定义的变量放在主文件main.c中,在exti.h中添加extern来外部引用此变量来用。

 

3. 使用ST-Link下载程序时出现“Invalid ROM Table”错误

Keil常见编译错误汇总_第2张图片

原因:可能是因为程序运行超频导致的。

解决:

step1:先断电开发板,再把开发板上的BOOT0接电位1,接着keil下载配置修改一下:进入Debug--Settings--Flash Download页面,把Program、Verify、Reset and Run前面的勾干掉下载程序,即擦除。

step2:接下来把开发板上的BOOT0换回电位0,再恢复keil下载配置,即勾选上rogram、Verify、Reset and Run,然后即可正常下载。

注意:这只是恢复下载的办法,然后可以下载原先正常的程序。导致的根本原因是最近的一次程序不正常,程序内部的晶振频率设置错误导致。

那么,其实造成这个结果的程序并不是本次下载提示这个错误的程序,而是上次的下载导致,只不过是下载此程序的时候才发现而已。解决这个错误提示用以上方法,不然开发板被锁死什么程序都下载不了了。

解决根源用以下方法:找到上次下载的程序,其实是程序里的晶振配置与外部实际的晶振配置不匹配导致的。

step1:修改此文件stm32f4xx.h,结合外部实际晶振,修改这个值,并不一定是25,只不过本人的是25

Keil常见编译错误汇总_第3张图片

step2:修改system_stm32f4xx.c,修改的值同步骤1.

 

4. keil在调试退出时,经常出现“Encountered an improper argument”提示,不能正常退出。

此时,只有关闭后台进程,才能关闭Keil。

原因:遇到不正确参数,往往是因为创建工程时,使用的是中文所致。比如此路径出现“01 脉冲检测_编码器”即不是正确参数,改为英文。

解决:把路径文件夹的中文改为英文即可。软件对中文的支持性不好所致,比较老的版本其实是可以的。

Keil常见编译错误汇总_第4张图片

Keil常见编译错误汇总_第5张图片

你可能感兴趣的:(工具使用)