先直接说答案,如果是用标准库配置的Keil工程可以不写。Keil会自动配置上。
最近在配置STM32F103RCT6的标准库Keil工程时,发现如果我不手动添加宏定义STM32F10X_HD,编译也并不会报错或者警告。
一开始我认为应该是STM32的汇编启动文件中会提前做好宏定义,而后在启动文件中,并没有找到相关的宏定义。而后我发现在C/C++配置中,Keil的编译控制已经自动为我们加上了STM32F10X_HD的宏定义。这里-D,是编译器的选项参数,表示define。有没有空格都行。
可以看到,即使没有手动添加,在将Keil工程配置好后,Keil便帮我们自动宏定义好了。
另外,如果Keil没帮我们自动宏定义的话,而我们又想实现自动宏定义的话,可以在stm32f10x.h文件里,去掉对应的注释。便可以自动为我们宏定义。