LabVIEWwilliam hill官网
直播中

沈海优

9年用户 21经验值
擅长:电源/新能源 嵌入式技术
私信 关注
[问答]

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

程序在运行的时候,有些地方串口是要写入,有些地方是要读取,但两个地方是同时运行的,那么我该怎么去保证在同一时间内,同一个串口只进行一个操作,要么读取要么写入。就是如何对这些操作进行一个优先度的排序?希望有大神能指导一下思路

回帖(8)

TYS

2017-2-5 09:56:19
设置个全局bool变量   正在读取则反回
举报

asdasdaw

2017-2-5 10:49:34
现在串口多数是全双工同时读写也没关系吧!如果非要控制流程建议把串口读写利用“LV2型全局变量”写到一个子vi里面(也就是写成动作机)把子vi设置成不可重入。可以参考一下LabVIEW宝典。
举报

王栋春

2017-2-5 20:19:31
这个不会  学习一下                     
举报

ChE_Li

2017-2-6 00:09:05
最简单用布尔变量做个条件判断就行喽。没记错的话,labview串口通信的范例就是这种。
也可以考虑用事件结构,例如,超时分支放默认的操作(即优先级较低的操作、常规循环的操作),如读取操作,再设置一个布尔按钮(负责响应写入动作)值发生变化的分支,用于处理写入操作。这时候,如果有需要自动响应写入,加上相应的软触发即可。
如果串口设备是写一条指令才能读一条指令的,那么就在写指令处进行条件判断即可。
如果有多个不同指令要处理,个人喜欢用状态机来处理。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分