如果使用STM32f103C8T6,在用keil编译时,不同的软件版本,在预处理符上写法不同。在keil4中preprocessor symbols需要写USE_STDPERIPH_DRIVER,STM32f10x_MD,如果不写就会报错。在keil5中,不写STM32f10x_MD,也是可以编译成功。
如果用MDK RTE环境生成库函数,stm32f10x.h会多下面的几行代码,且会生成一个RTE Component.h文件,通过下面的代码,会自定义 USE_STDPERIPH_DRIVER,这样在preprocessor symbols中USE_STDPERIPH_DRIVER也不用写。
如果不是用MDK RTE环境加外设,在preprocessor symbols中USE_STDPERIPH_DRIVER还是要写的。
#if !defined USE_STDPERIPH_DRIVER
#ifdef _RTE_
#include "RTE_Components.h"
#ifdef RTE_DEVICE_STDPERIPH_FRAMEWORK
#define USE_STDPERIPH_DRIVER
#endif
#endif
#endif
文章讲述了在使用STM32F103C8T6微控制器时,基于Keil4和Keil5编译器,预处理符号USE_STDPERIPH_DRIVER和STM32f10x_MD的写法变化。在MDK-RTE环境下,stm32f10x.h头文件会自动生成USE_STDPERIPH_DRIVER定义,而在非RTE环境下,则需要手动在预处理器中添加USE_STDPERIPH_DRIVER。
3021






