keil5以上版本开发stm32不需要定义STM32F10X_HD,USE_STDPERIPH_DRIVER
2015-05-22 10:20
417 查看
用官方的库函数开发stm32时,不需要再c/c++选项卡定义STM32F10X_HD,USE_STDPERIPH_DRIVER也能编译成功,不会出现错误和警告,为什么呢?
我到stm32f10x.h文件去看时,发现多了几句话:
#if !defined USE_STDPERIPH_DRIVER
#ifdef _RTE_
#include "RTE_Components.h"
#ifdef RTE_DEVICE_STDPERIPH_FRAMEWORK
#define USE_STDPERIPH_DRIVER
#endif
#endif
#endif
就是这几句话,程序自动帮我们定义了USE_STDPERIPH_DRIVER,因为我使用的是官方的pack,那么
#ifdef _RTE_为真,然后就会包含头文件 #include
"RTE_Components.h", 只要我们用官方提供的外设固件库,那么 #include "RTE_Components.h"文件里面就会生成相应的“宏变量”,然后就会定义#define
USE_STDPERIPH_DRIVER,而不需要我们手动去定义。
STM32F10X_HD定义的地方我没找到,我用keil5以下版本和以上版本测试同一个程序,在c/c++选项卡里面什么也没有定义,那么结果是:keil5以下版本编译时出现了错误,而keil5以上的版本没出现错误,那么我猜想STM32F10X_HD宏定义是keil5以上版本特有的功能,当我们选好cpu时,自动就会定义相应的宏,我选的是stm32f103zet6,那么软件会自动定义STM32F10X_HD,以上是我的猜想。因为keil5以下版本测试相同的程序就会出错,而错误信息是:
#if !defined (STM32F10X_LD) && !defined (STM32F10X_LD_VL) && !defined (STM32F10X_MD) && !defined (STM32F10X_MD_VL) && !defined (STM32F10X_HD) && !defined (STM32F10X_HD_VL) && !defined (STM32F10X_XL) && !defined
(STM32F10X_CL)
#error "Please select first the target STM32F10x device used in your application (in stm32f10x.h file)"
#endif
这就说明程序是没有定义STM32F10X_HD,而keil5以上版本却编译不出这样的错误,那就是keil5以上版本的软件能够根据cpu型号定义相应的宏。
【转自:http://blog.sina.com.cn/s/blog_dc9571b90102vhvu
4000
.html】
我到stm32f10x.h文件去看时,发现多了几句话:
#if !defined USE_STDPERIPH_DRIVER
#ifdef _RTE_
#include "RTE_Components.h"
#ifdef RTE_DEVICE_STDPERIPH_FRAMEWORK
#define USE_STDPERIPH_DRIVER
#endif
#endif
#endif
就是这几句话,程序自动帮我们定义了USE_STDPERIPH_DRIVER,因为我使用的是官方的pack,那么
#ifdef _RTE_为真,然后就会包含头文件 #include
"RTE_Components.h", 只要我们用官方提供的外设固件库,那么 #include "RTE_Components.h"文件里面就会生成相应的“宏变量”,然后就会定义#define
USE_STDPERIPH_DRIVER,而不需要我们手动去定义。
STM32F10X_HD定义的地方我没找到,我用keil5以下版本和以上版本测试同一个程序,在c/c++选项卡里面什么也没有定义,那么结果是:keil5以下版本编译时出现了错误,而keil5以上的版本没出现错误,那么我猜想STM32F10X_HD宏定义是keil5以上版本特有的功能,当我们选好cpu时,自动就会定义相应的宏,我选的是stm32f103zet6,那么软件会自动定义STM32F10X_HD,以上是我的猜想。因为keil5以下版本测试相同的程序就会出错,而错误信息是:
#if !defined (STM32F10X_LD) && !defined (STM32F10X_LD_VL) && !defined (STM32F10X_MD) && !defined (STM32F10X_MD_VL) && !defined (STM32F10X_HD) && !defined (STM32F10X_HD_VL) && !defined (STM32F10X_XL) && !defined
(STM32F10X_CL)
#error "Please select first the target STM32F10x device used in your application (in stm32f10x.h file)"
#endif
这就说明程序是没有定义STM32F10X_HD,而keil5以上版本却编译不出这样的错误,那就是keil5以上版本的软件能够根据cpu型号定义相应的宏。
【转自:http://blog.sina.com.cn/s/blog_dc9571b90102vhvu
4000
.html】
相关文章推荐
- stm32开发环境加入STM32F10X_HD和USE_STDPERIPH_DRIVER两个宏
- 关于STM32 MDK中USE_STDPERIPH_DRIVER问题及 STM32F10X_LD STM32F10X_MD STM32F10X_HD STM32F10X_CL宏定义的选择
- 【转载】keil5中加入STM32F10X_HD,USE_STDPERIPH_DRIVER的原因
- stm32 加入 USE_STDPERIPH_DRIVER、STM32F10X_HD的原因
- stm32 加入 USE_STDPERIPH_DRIVER、STM32F10X_HD的原因
- stm32 加入 USE_STDPERIPH_DRIVER、STM32F10X_HD的原因
- MDK设置中USE_STDPERIPH_DRIVER,STM32F10X_HD含义
- USE_STDPERIPH_DRIVER, STM32F10X_HD说明
- USE_STDPERIPH_DRIVER, STM32F10X_HD说明
- STM32标准外设库中USE_STDPERIPH_DRIVER, STM32F10X_MD的含义
- STM32标准外设库中USE_STDPERIPH_DRIVER, STM32F10X_MD的含义
- STM32标准外设库中USE_STDPERIPH_DRIVER, STM32F10X_MD的含义
- USE_STDPERIPH_DRIVER, STM32F10X_HD说明
- stm32标准外设库中USE_STDPERIPH_DRIVER, STM32F10X_MD的含义
- 关于STM32 MDK中USE_STDPERIPH_DRIVER问题的解释
- 关于STM32 MDK中USE_STDPERIPH_DRIVER问题的解释
- STM32库文件--STM32F10x_StdPeriph_Driver 3.5.0中systick库文件函数不全,添加
- STM32的USE_STDPERIPH_DRIVER
- 关于STM32标准外设库中的 USE_STDPERIPH_DRIVER, STM32F10X_MD
- 关于STM32 MDK中USE_STDPERIPH_DRIVER问题的解释