[STM32F4] STM32库函数里众多的Callback()怎么使用

[复制链接]
2887|52
 楼主| wyjie 发表于 2022-11-6 20:26 | 显示全部楼层 |阅读模式
STM32库函数里众多的Callback()怎么使用
llljh 发表于 2022-11-6 20:29 | 显示全部楼层
觉得就像是中断处理函数一样,这个到底怎么理解?
香水城 发表于 2022-11-7 11:27 | 显示全部楼层
这些回调函数只是STM32库给用户准备的一些接口,只是函数框架。

当发生相应的初始化或中断事件时,可以被调用,但函数主体内容由我们使用者填写。

对于那些中断回调函数 可以看成中断服务程序的一部分,因为不知用户会具体写什么,通常我们看到的库里面的回调函数 只是个框架,具体内容由用户填写。

库准备那些回调函数接口,目的是为了方便用户,用户只需针对性填写代码即可。

当然,我们也完全可以不理睬这些。我们基于不同事件自行组织代码也是可以的。



chuxh 发表于 2022-11-11 18:48 | 显示全部楼层

void HAL_ADC_ConvCpltCallback(ADC_HandleTypeDef* AdcHandle)
{
  /* Turn LED3 on: Transfer process is correct */
  BSP_LED_On(LED3);
}



比如这个函数。根据意思是转换结束后,调用该函数。
 楼主| wyjie 发表于 2022-11-11 18:51 | 显示全部楼层

嗯,而头文件里定义的中断入口都是如下这样的。
               DCD     ADC_IRQHandler                    ; ADC1, ADC2 and ADC3s  
                 EXPORT  ADC_IRQHandler                    [WEAK]  
dingy 发表于 2022-11-11 18:53 | 显示全部楼层

Callback()是回调函数吧
supernan 发表于 2022-11-11 18:54 | 显示全部楼层
是开启中断后,回调函数。
lizye 发表于 2022-11-11 18:57 | 显示全部楼层
开启中断后,如何回调函数?这个东西就是中断触发后执行的函数吗?
午夜粪车 发表于 2022-11-11 18:59 | 显示全部楼层
应该和标准固件库的中断处理函数一样吧
 楼主| wyjie 发表于 2022-11-11 19:01 | 显示全部楼层
中断发生后进入ADC_IRQHandler 函数,最终会调用到HAL_ADC_ConvCpltCallback
juventus9554 发表于 2022-11-11 19:03 | 显示全部楼层
如果明白调用机制,你自然会用,如果不明白,也教不会你
dengdc 发表于 2022-11-11 19:06 | 显示全部楼层
就是中断回调函数啊
huangchui 发表于 2022-11-11 19:07 | 显示全部楼层
进入中断后,你想干什么 就写什么
chuxh 发表于 2022-11-11 19:09 | 显示全部楼层
就是你进入中断之后需要干什么 就在这里处理就行
wuhany 发表于 2022-11-11 19:15 | 显示全部楼层
其实就是一个函数名字 你添加函数体就行
午夜粪车 发表于 2022-11-11 19:17 | 显示全部楼层
留给用户的一个处理接口,根据需要决定是否使用
 楼主| wyjie 发表于 2022-11-11 19:19 | 显示全部楼层
使用的时候怎么用,什么情况下才可以调用该函数?
dingy 发表于 2022-11-11 19:21 | 显示全部楼层
貌似是中断吧
pengf 发表于 2022-11-11 19:23 | 显示全部楼层
HAL库函数能把人绕晕。
 楼主| wyjie 发表于 2022-11-11 19:26 | 显示全部楼层
嗯,我再好好缕一缕吧,有了好消息及时通知大家,结贴喽
您需要登录后才可以回帖 登录 | 注册

本版积分规则

927

主题

12706

帖子

5

粉丝
快速回复 在线客服 返回列表 返回顶部