首先建立led.h。该文件应包含GPIO对应的资源,书写头文件如下:
#ifndef_LED_H
#define_LED_H
#include"stm32f4xx.h"
void LED_GPIO_Config(void);
#endif /END of*_LED_H*/
开头两行和最后一行是常规头文件的格式,#ifndef、#define和#endif都是宏伪指令。这个格式用于防止该头文件被重复引用。被重复引用是指一个头文件在同一个*.c文件中被包含了多次,这种错误常常是由于include嵌套造成的。比如:在a.c文件中有“#include"a.h"”,而此时b.c文件也导入“#include"a.h"”,此时a.h文件会被重复引用,导致a.h的内容被重复定义,而C语言是不允许重复定义的,这时编译器会报错。(www.xing528.com)
为了避免出现这个问题,可以使用上述例程中的宏#ifndef/#define/#endif进行条件编译。具体的含义如下:
这样使用时,只要a.h被某个*.c文件引用过,如果另一个*.c文件再次引用a.h,编译器根据条件,就不会去寻找a.h文件,而是直接跳过,从而避免了重复引用。
建议使用#ifndef/#define/#endif进行头文件的书写。
中间的两行则是头文件内容:“#include"stm32f4xx.h"”,意思是包含stm32f4xx.h头文件。这个头文件的含义是外设寄存器定义,完成寄存器映射,其中包含了驱动LED与GPIO相关的寄存器。
“void LED_GPIO_Config(void);”的含义是定义一个LED_GPIO_Config()函数,完成GPIO初始化,该函数在led.c内编写。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。