stm32代码移植之子函数库化

  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_对应GPIOx1GPIOA宏定义为GPIOx1_)、Pinx_9对应Pinx9GPIO_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文件里边

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值