论坛元老
 
- 积分
- 4523
- 金钱
- 4523
- 注册时间
- 2018-5-11
- 在线时间
- 947 小时
|

楼主 |
发表于 2018-7-24 21:11:15
|
显示全部楼层
本帖最后由 warship 于 2018-7-24 21:48 编辑
那么,使用库函数呢?
我们看stm32f10x.h的第99行:
#if !defined USE_STDPERIPH_DRIVER
/**
* @brief Comment the line below if you will not use the peripherals drivers.
In this case, these drivers will not be included and the application code will
be based on direct access to peripherals registers
*/
/*#define USE_STDPERIPH_DRIVER*/
#endif
这一段的作用是:如果还没有定义USE_STDPERIPH_DRIVER这个宏,就定义一下。
其中的英文注释里说:如果你不使用库函数的外设驱动代码,而是通过直接访问外设寄存器进行编程,
就可注释掉下面定义宏USE_STDPERIPH_DRIVER的这一句(#define USE_STDPERIPH_DRIVER),
所以在我们使用的寄存器版本中,这一句通常是被注释掉的。
假如我们要使用库函数,则需要这一句#define USE_STDPERIPH_DRIVER
然而事实上,看一看我们使用库函数的版本,这一句实际上也是被注释了的。
这是为了兼容寄存器版本和库函数版本,
在这种情况下,使用库函数编程时,在不改动stm32f10x.h文件的情况下,
我们就需要在工程配置“魔术棒”的C/C++选项卡中,手工添加定义:USE_STDPERIPH_DRIVER
这样,在使用库函数编程时,即使stm32f10x.h中的那一句宏定义被注释掉,我们仍然完成了USE_STDPERIPH_DRIVER的宏定义
|
|