请选择 进入手机版 | 继续访问电脑版

安富莱电子论坛

 找回密码
 立即注册

扫一扫,访问微社区

查看: 287|回复: 3
收起左侧

[FreeRTOS] 如何使用串口中断使用二进制信号量

[复制链接]

30

主题

108

帖子

168

积分

初级会员

积分
168
发表于 2018-11-26 09:11:49 | 显示全部楼层 |阅读模式
串口中断函数中,接收完数据调用:xSemaphoreGiveFromISR(),串口数据处理任务可以处理相应的数据,为何串口中断函数中还要调用portYIELD_FROM_ISR?能不调用么
回复

使用道具 举报

105

主题

777

帖子

987

积分

版主

Rank: 7Rank: 7Rank: 7

积分
987
发表于 2018-11-26 09:44:20 | 显示全部楼层
本帖最后由 caicaptain2 于 2018-11-26 09:45 编辑

需要考虑一个情况,进入串口 中断的时候,并不知道被打断的是哪个任务,以及这个任务的优先级。 在完成中断函数后,需要判断一下,是否需要切换一下到高级任务。 所以需要调用这个函数。 这是严谨的任务管理思想。

如果你不在乎任务优先级的切换,可以不调用这个函数。一般运行起来也没啥影响。
回复

使用道具 举报

14

主题

181

帖子

209

积分

高级会员

积分
209
发表于 2018-11-27 08:56:41 | 显示全部楼层
楼上点赞
回复

使用道具 举报

30

主题

108

帖子

168

积分

初级会员

积分
168
 楼主| 发表于 2018-11-28 10:54:15 | 显示全部楼层
明白了,这与uC/OS中的函数OSIntEnter()、OSIntExit()原理是一样的,中断之后进行任务调度,保证系统的实时性,谢谢~
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|手机版|安富莱电子论坛 ( 鄂ICP备09023347号,公安机关备案号42010602000201 )

GMT+8, 2019-4-23 22:15 , Processed in 0.169141 second(s), 23 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表