大家好!我是天天爱笑的肖小笑
本次给大家带来的是STM32基于HAL库开发,如何用回调函数实现流水灯。
开发所用的芯片为:stm32f103c8t6;话不多说,开始整活儿。
一、先熟悉一下硬件电路
灯亮 - GPIO输出高电平
灯灭 - GPIO输出低电平
二、技术讲解
1.回调函数
一般解释:回调函数就是一个通过函数指针调用的函数。如果你把函数的地址传递给中间函数的形参,中间函数通过函数指针调用其所指向的函数时,我们就说这是回调函数。
通俗解释:函数Fun1调用函数Fun2,同时将函数Fun3作为形参传递给Fun2,此时,Fun1为应用层函数,Fun2为中间层函数,Fun3为回调函数,回调函数是一种说法而已。
伪代码:
Fun1()
{
Fun2(Fun3);
}
意义何在:
① 利于代码结构,将代码分为应用层,中间层,硬件驱动层,彼此独立,方便程序的编辑,阅读,修改与移植;
② 结构化编程时,结构体只需要定义中间函数,减小内存的开销。
为什么不在Fun2里面直接调用Fun3?
伪代码:
Fun1()
{
Fun2()
{
Fun3_1();
Fun3_2();
......
}
}
通过函数指针的好处是,Fun2与Fun3实现隔离,比如Fun3具有多个功能函数,增加或减少时,不需要修改Fun2的代码。
2.代码实现
<h文件>
<中间函数>
<底层驱动函数>
<应用层>
三、HAL库函数
说明:视频详细讲解各个函数以及应用情况。
四、编程说明
1、STM32cubeMX初始化
说明:初始化3个LED灯为推挽输出,默认高电平,亮灯。
2、文件结构如下
说明,程序在标准的程序框架基础上设计。
3、运行函数
非常感谢大家的支持,我会尽我最大的能力将最好的资源带给大家。一起加油吧!
本贴属于转载,如有侵权请联系删除。