串口通信中#if SYSTEM_SUPPORT_OS是有什么用的?
时间:10-02
整理:3721RD
点击:
在看一些串口通信资料中,在串口中断函数里,开头有这样#if SYSTEM_SUPPORT_OS
OSIntEnter();
#endif
......
这是干嘛用的?必须的吗?
OSIntEnter();
#endif
......
这是干嘛用的?必须的吗?
条件编译,当支持操作系统(对于STM32,一般是UCOS)时执行OSIntEnter()
我感觉它的作用是保护传输数据不被打断
如果有操作系统的话,可能会涉及比串口中断优先级更高的中断,会打断串口传输,所以在进入串口中断后干脆就关掉总中断,等传完了再开中断,如果是这样的话中断结尾估计还得有个OSIntExit()
这是一种保护临界段的手段。
暂时能想到的是这个,小编需要自己辨别是不是我说的这个原因
对啊,开头结尾都有这样一段,我就是好奇,不知道干嘛用的
