Keil 编译STM32 遇到异常怎么解决

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Keil 编译STM32 遇到异常怎么解决相关的知识,希望对你有一定的参考价值。

参考技术A 这个问题一般出现在移动库,或者将两个程序合并的时候报错
原因是旧版的库与新版的库发生冲突了,冲突的原因是旧版和新版都定义了同一个东西,比如“s32”,于是就会发生重定义的报错
解决这个问题的方法其实也不难,因为编写程序的时候有一个防止重定义的宏,在新版的库里面添加这样的一个宏就可以消除大部分的错误了
我们先找到从定义的地方,双击错误跟踪到报错的地方我们可以看到这里就是type定义的地方,看到上面有一个“#ifndef
__STM32F10x_TYPE_H”,这个就是旧版的宏,只要将这个宏在新版的相应位置定义一下就好
到新版的库文件中,注意要消除只读的设置,从错误来看,是“s32”发生了重定义,那么就是说,新版的库应该也是有“s32”的定义,于是用搜索功能,找到“s32”定义的地方
然后在这个定义的上方补充定义这个宏就可以解决一部分的问题了,添加这样一段
#ifndef
__STM32F10x_TYPE_H//补充定义旧版的宏
#define
__STM32F10x_TYPE_H
#endif
#47-D:
incompatible
redefinition
of
macro
"SCS_BASE"
的错误解决方法也差不多,补充定义旧版宏即可解决大部分问题,这次是在core_cm3.c文件中,注意解锁

在KEIL编译器中STM32怎么样可以定义Flash地址定义常量

参考技术A STM32_FLASH编程(片内)配置:
http://blog.csdn.net/ybhuangfugui/article/details/51599115

以上是关于Keil 编译STM32 遇到异常怎么解决的主要内容,如果未能解决你的问题,请参考以下文章

STM32使用cube生成的程序后在keil5编译后首次SWD可以下载再次下载不行的解决办法。

STM32 M3内核 keil编译器,位域定义中在前面的是放在低位的还是高位的

keil怎么把程序烧录进stm32

keil烧录程序慢

Keil5配置GCC编译器编译STM32工程

Keil5 STM32 C++开发 ARM V6编译器的使用教程