微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 串口通信中#if SYSTEM_SUPPORT_OS是有什么用的?

串口通信中#if SYSTEM_SUPPORT_OS是有什么用的?

时间:10-02 整理:3721RD 点击:
在看一些串口通信资料中,在串口中断函数里,开头有这样#if SYSTEM_SUPPORT_OS
OSIntEnter();
#endif
......
这是干嘛用的?必须的吗?

条件编译,当支持操作系统(对于STM32,一般是UCOS)时执行OSIntEnter()

我感觉它的作用是保护传输数据不被打断
如果有操作系统的话,可能会涉及比串口中断优先级更高的中断,会打断串口传输,所以在进入串口中断后干脆就关掉总中断,等传完了再开中断,如果是这样的话中断结尾估计还得有个OSIntExit()
这是一种保护临界段的手段。
暂时能想到的是这个,小编需要自己辨别是不是我说的这个原因

对啊,开头结尾都有这样一段,我就是好奇,不知道干嘛用的

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top