| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 嵌入式 -> stm32代码移植之子函数库化 -> 正文阅读 |
|
[嵌入式]stm32代码移植之子函数库化 |
? 例: 图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文件里边 |
|
嵌入式 最新文章 |
基于高精度单片机开发红外测温仪方案 |
89C51单片机与DAC0832 |
基于51单片机宠物自动投料喂食器控制系统仿 |
《痞子衡嵌入式半月刊》 第 68 期 |
多思计组实验实验七 简单模型机实验 |
CSC7720 |
启明智显分享| ESP32学习笔记参考--PWM(脉冲 |
STM32初探 |
STM32 总结 |
【STM32】CubeMX例程四---定时器中断(附工 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 10:22:25- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |