如何保证同一时间串口只进行一个操作

2019-07-17 20:00发布

程序在运行的时候,有些地方串口是要写入,有些地方是要读取,但两个地方是同时运行的,那么我该怎么去保证在同一时间内,同一个串口只进行一个操作,要么读取要么写入。就是如何对这些操作进行一个优先度的排序?希望有大神能指导一下思路
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
8条回答
ChE_Li
2019-07-18 09:07
最简单用布尔变量做个条件判断就行喽。没记错的话,labview串口通信的范例就是这种。
也可以考虑用事件结构,例如,超时分支放默认的操作(即优先级较低的操作、常规循环的操作),如读取操作,再设置一个布尔按钮(负责响应写入动作)值发生变化的分支,用于处理写入操作。这时候,如果有需要自动响应写入,加上相应的软触发即可。
如果串口设备是写一条指令才能读一条指令的,那么就在写指令处进行条件判断即可。
如果有多个不同指令要处理,个人喜欢用状态机来处理。

一周热门 更多>