打印
[STM32F1]

回调函数是每次中断都进去一次?

[复制链接]
484|19
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
medety|  楼主 | 2023-10-12 17:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1.    比如串口的接收或者发送的回调函数,是不是每发一个字节,或者说每接收一次字节,都进去回调一次?

2.     中断的目的就是为了执行回调函数里面的内容,我这个说法对么》?

使用特权

评论回复
沙发
elephant00| | 2023-10-13 12:02 | 只看该作者
是的,回调函数是每次中断都会进去一次。在串口通信中,当单片机每完成接收一个字符,就会进入一次中断处理函数。在中断处理函数中,会调用函数HAL_UART_IRQHandler(UART_HandleTypeDef *huart),该函数间接调用回调函数

使用特权

评论回复
板凳
medety|  楼主 | 2023-10-13 13:55 | 只看该作者
elephant00 发表于 2023-10-13 12:02
是的,回调函数是每次中断都会进去一次。在串口通信中,当单片机每完成接收一个字符,就会进入一次中断处理 ...

那这样回调频率不是很高了?

使用特权

评论回复
地板
elephant00| | 2023-10-13 16:47 | 只看该作者
medety 发表于 2023-10-13 13:55
那这样回调频率不是很高了?

如果你担心回调频率过高会对系统性能产生负面影响,可以考虑以下几个方面:

1.中断处理程序的优化:尽可能减少中断处理程序中的操作,将复杂的逻辑判断或耗时的操作移到外部的回调函数中,减少中断处理的时间,降低回调的频率。
2.回调函数的实现:在实现回调函数时,要注意函数的性能和效率。避免在回调函数中执行过于耗时的操作,减少对系统资源的占用。
3.任务的调度:可以考虑使用任务调度或工作队列等技术,将回调函数挂接到相应的任务或队列中,以避免频繁地调用回调函数,降低回调的频率。

使用特权

评论回复
5
medety|  楼主 | 2023-10-15 18:21 | 只看该作者
elephant00 发表于 2023-10-13 16:47
如果你担心回调频率过高会对系统性能产生负面影响,可以考虑以下几个方面:

1.中断处理程序的优化:尽可 ...

好,谢谢指点。

使用特权

评论回复
6
夜阑风雨| | 2023-11-21 23:47 | 只看该作者
符合条件就会进入到中断的啊

使用特权

评论回复
7
三生万物| | 2023-11-22 02:00 | 只看该作者
这个好像是这样的

使用特权

评论回复
8
江河千里| | 2023-11-22 04:00 | 只看该作者
也不一定,串口发数据有的是按字符串的方式发送的

使用特权

评论回复
9
冰春彩落下| | 2023-11-22 06:00 | 只看该作者
你可以看看中断函数里面的嘛,这样会知道怎么回事儿了

使用特权

评论回复
10
暖了夏天蓝了海| | 2023-11-22 08:00 | 只看该作者
中断的目的是快速响应中断里的任务

使用特权

评论回复
11
一秒落纱| | 2023-11-22 10:00 | 只看该作者
主要是单片机相当于按部就班的操作,但是中断就相当于打破了这个规则

使用特权

评论回复
12
淡漠安然| | 2023-11-22 12:00 | 只看该作者
中断确实是为了执行回调函数里面的内容

使用特权

评论回复
13
别乱了阵脚| | 2023-11-22 14:00 | 只看该作者
对啊,每次想要用到中断里面的函数,都要进到中断一下的

使用特权

评论回复
14
光辉梦境| | 2023-11-22 16:00 | 只看该作者
这个看你程序逻辑怎么写的,有很多回调函数也不一定在中断里执行的

使用特权

评论回复
15
远山寻你| | 2023-11-22 20:00 | 只看该作者
中断当然要执行内容了,但是是不是回调函数的,得看你是咋写的

使用特权

评论回复
16
guijial511| | 2023-11-23 08:07 | 只看该作者
回调函数和中断没有必然联系。

使用特权

评论回复
17
wziyi| | 2023-11-23 17:46 | 只看该作者
不一定,同一个中断可以选择好几种回调函数,看你怎么配置。

使用特权

评论回复
18
EmmaTT| | 2024-4-8 14:19 | 只看该作者
中断里要执行什么操作啊

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

11

主题

69

帖子

0

粉丝