1. 建立FUNCTION.c文件和FUNCTION.h文件。(将所有的子函数都放在这两个文件里边)

  例:

图1  建立FUNCTION.c和FUNCTION.h的文件

图2  FUNCTION.h文件基本格式

(注:.h文件格式很重要,#endif后面一定要多打几个空行,否则会报错哦)

2、建立一个ALLDEFINE.h文件,将所有的头文件包含在这个ALLDEFINE.h文件里边,需要用到头文件的话直接#include  “ALLDEFINE.h”即可。

例:

 

图3  所有头文件声明文件名

                                                

图4  ALLDEFINE.h文件内容

3、建立一个ALLDATA.h文件,用来存放宏定义的值或者变量。

例:

图5  ALLDATA.h文件具体形式

4、把用到的子函数放到FUNCTION.c文件里边,同时需要在FUNCTION.h文件里边对每个子函数进行声明。

例:

图6  库函数文件名

图7  FUNCTION.c文件内容

                                                                  

图8  库函数文件名(.h文件) 

图9  FUNCTION.h文件内容

5、将子函数里面含有的gpio的类型和引脚均用参数将他们取代,将对应的类型和引脚进行宏定义。(调用函数时,只需修改参数即可)

例:

 

图10  蜂鸣器初始化函数(没有入口参数)

GPIOA用变量GPIOx1取代,GPIO_PIN_9用Pinx9取代

 

图11  蜂鸣器初始化函数(有入口参数)

令GPIOx1_对应GPIOx1(GPIOA宏定义为GPIOx1_)、Pinx_9对应Pinx9(GPIO_PIN_9宏定义为Pinx_9)。(若用同款单片机,且想用之前的gpio类型和引脚,则从参数上就很容易看出)

图12  宏定义GPIO的类型和引脚

则调用蜂鸣器初始化函数可以static void BUZZER_Init(GPIOx1_,Pin_9),

也可以static void BUZZER_Init(GPIOA,GPIO_PIN_9)

6、注意事项:若ALLDATA.h、ALLDEFINE.h、ALLDEFINE.c、FUNCTION.c、FUNCTION.h放在同一个文件夹里边,则在keil的project的项目栏里边也需把这几个文件放在同一个文件夹里边。(否则会报错哦)

例:

                

图13  以上提到的几个文件全在工程的USER文件里边

                                              

图14  keil工程项目里边也需把以上提到的几个文件包含在USER文件里边

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐