您的位置:首页 > 编程语言 > C语言/C++

stm32编译前为什么要配置keil中C/C++中的define 和include Paths?

2015-08-13 19:30 423 查看
这是Keil与编译器的一个相互通信的过程,准确的来说,是编译器读取Keil的配置

ARM系列的有一些公司的库编译器,是与Keil的一些配置通信的.

比如你说的那个 Define,include path

一般来说,我们用Keil做51或者STR710等等一些单片机的程序时候,不需要配置刚才的两个选项,为什么?

因为C51和ARM7的编译器不去读取上述的配置.

而Cortex-M3编译器,则读取上述的配置,并转换成自己的内编译器配置

比如:你在Define里面写:THIS_MY_DEF

那么,编译器在编译的时候,文件里会隐性的定义出这么一句:

#define THIS_MY_DEF

通常,我们写Define里,都写USE_STDPERIPH_DRIVER,STM32F10X_HD这两个

然后,编译的时候,文件里会隐性定义

#define USE_STDPERIPH_DRIVER

#define STM32F10X_HD

而这两个宏,决定了STM32的库函数的一些配置.

如果你把那个Define文本框空闲出来,那么,编译器找不到任何配置信息,自然就出错.

如果你一定要把Define文本框空闲,那么,你就要在Stm32F10x.h等多个文件里手工添加

#define USE_STDPERIPH_DRIVER

#define STM32F10X_HD

过程比较繁琐,如果一旦换了芯片,整个的工程就有多处要修改, 工作量太大,且容易出错,就不如在配置的时候操作一次那么简便
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: