• 资料介绍
  • 在线预览
  • 相关推荐
申请入驻 产业图谱

LAT1241 浅谈STM32库里的回调函数

03/25 14:10
923
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

LAT1241 浅谈STM32库里的回调函数

1.01 MB

回调函数

有人对 STM32 固件库里的回调函数有些好奇甚至纠结,这里简单介绍下。其实从用法及功能上讲他们并没有什么特别的,跟其它函数一样,也是实现特定功能的代码段。一般来讲,所谓回调函数,泛指基于事件触发而被调用执行的函数,简单点说,就是条件满足了就调用的函数,往往会跟函数指针结合起来通过函数指针实现调用。

STM32 固件库里的回调函数

说到这里,我们具体结合 STM32 外设固件库里回调函数来聊聊。

首先,作为一个函数库,里面不存在现存的完整的回调函数。前面的介绍已为此做铺垫,因为回调函数需要结合具体场景而拟定,作为函数库根本做不到这一点,它没法事先知晓发生某个事件时不同的应用会需要采取怎样的操作。

其次,STM32 库函数的确采用了回调机制,并基于可能的各种事件为 STM32 开发者预留了只有函数定义而无具体内容的空回调函数,或者是只定义了一些基于各类事件的函数指针,具体的回调函数需我们用户完成并将函数地址赋给相应的函数指针而被调用。简单点说,库给我们预留了众多回调函数接口。

STM32 库函数里的回调机制及触发事件

整体上讲,STM32 外设库里的 API 函数由三部分组成,分别是:

初始化函数

启动型执行函数

回调函数【弱定义函数或回调函数指针,最终得靠用户具体完成编写】

这样的安排,让整个工程代码结构比较清晰,可以让人快速了解库结构,同时现存的 API 函数大大减少开发工作量,预留的回调函数接口一方面给开发者提供了便利,另一方面让用户基于不同应用场景自由组织代码而又不破坏整个软件架构。

关于 STM32 HAL 库里的回调函数的几个常见问题

STM32 库函数里的回调函数是什么,有何用?

STM32 工程里的回调函数与中断函数有什么区别?

STM32 库函数里的回调函数是否可以不用?

STM32 库函数里似乎存在着类似半成品的库回调函数?

基于 STM32 库来组织用户回调函数要注意什么?

在线预览

相关推荐