原创 我对stm32工程设置中的宏定义的理解

2014-8-26 15:26 3523 8 17 分类: MCU/ 嵌入式


Stm32
学习第一天

 

1.   对工程设置中的宏定义的理解,在stm32F103VET6的工程设置如下:


20140826150832369.jpg


如上图,工程设置中定义了两个宏定义:STM32F10X_HD,USE_STDPERIPH_DRIVER,下面分别来分析它们:

1.  STM32F10X_HD


当我们去掉这个宏定义,我们发现报错信息如下

   ..\USER\stm32f10x.h(96): error:  #35: #error directive: "Please select first the target STM32F10x device used in your application (in stm32f10x.h file)"

   我们在程序中找到使用到该宏定义的其中一个地方:


20140826151329476.jpg


它定义了中断向量的标号。

后续还找到很多关于该宏定义的位置,表明这是编译过程中必须的,编译器会根据该宏定义,再定义其他的宏定义或者开启一起只有高容量芯片才会存在的功能和外设。


2. USE_STDPERIPH_DRIVER

去掉该宏定义后,编译报错,都是说一些未定义之类的错误,如下图。


20140826151428363.jpg


我们在程序中找到这个宏定义的位置如下:


20140826151555276.jpg


发现该宏定义的作用就是包含一个头文件,我们继续来看这个头文件:


20140826151655685.jpg


发现它就是包含了一下系统库函数的头文件,当我们没包含这些头文件的时候,就会未定义的错误。

这里需要说明一下,Main函数中我们没有手动添加包含任何系统库函数的头文件。所以该宏定义的主要作用就很明显了。我们在工程总需要什么头文件,我们在stm32f10x_con.h中将它不注释掉就可以了。

 

PARTNER CONTENT

文章评论9条评论)

登录后参与讨论

用户1724500 2014-9-5 17:39

希望能多多交流~

1634090993_696409884 2014-9-2 21:34

这次知道为什么了~,之前只是按照步骤死搬硬套!

用户1724500 2014-9-1 21:05

谢谢~希望多多交流。。。。

用户451825 2014-9-1 17:27

好文章!学习啦!

用户377235 2014-8-28 11:36

大神

用户438639 2014-8-27 10:37

这个写的不错

用户377235 2014-8-27 09:38

写的真好,受益良多,楼主要多写出好文章哦!

用户377235 2014-8-26 23:28

写得好

用户1777767 2014-8-26 20:45

好东西,谢谢楼主。
相关推荐阅读
用户1724500 2014-09-01 16:29
[博客大赛]stm32中位带操作的实现
    位带操作在stm32中的C语言实现    首先:    #define BITBAND(addr,bitnum)  ((addr & 0xF0000000)...
用户1724500 2014-09-01 16:27
[博客大赛]我对stm32中GPIO输入输出模式的理解
stm32学习第三天     最近学习了stm32的GPIO的相关操作,发现其GPIO的配置模式有好几种,包括: 1. 模拟输入; 2. 浮空输入; 3. 上拉输入; ...
用户1724500 2014-08-28 09:30
我对位带操作的理解
    Stm32学习第二天     今天对为位带操作进行了浅显的学习。   我对位带操作的理解是,通过位带操作我们可以向操作51单片机一样,直接控制一个IO口的...
我要评论
9
8
关闭 站长推荐上一条 /3 下一条