Arduino Mind+编程 轮询读取多个软串口数据的方法讨论

2022-02-032.6万
AI 快速预览详细 收起
本文讨论了使用Arduino Uno连接多个TTL输出传感器时,通过定义多个软串口进行数据接收的方法。文章提出了一种分时轮询读取多个软串口数据的方案,通过状态变量控制轮询执行软串口1、2的读取函数,实现两个软串口各读取3次。虽然从运行结果看,得到了预期的数据输出,但频繁初始化软串口可能存在一些问题。
Arduino uno连接多个ttl输出传感器数据时,需要定义多个软串口,进行数据接收,想到了一种比较笨的方法实现分时轮询读取,希望得到前辈高人的指点。

​轮询过程

通过变量i的状态值改变,实现轮询初始化软串口并进行数据读取。虽然从运行结果看,得到了预期的数据输出,但问题是,频繁的初始化软串口,是否是正确的方式,是否存在问题?

主程序中只初始化物理串口,用于向串口屏输出指令。在循环执行中通过状态变量s控制轮询执行软串口1、2的读取函数。

​图为软串口1的初始化和读取函数
软串口2的初始化和读取函数与1的方式相同。
通过以上设置实现了两个软串口分时轮询读取数据,即:两个软串口各读取3次,并在物理串口输出了格式化的串口屏指令:
频繁的初始化软串口,是否是正确的方式,是否存在问题? 请高人指点。

创作许可协议

本项目采用 None(不开放任何权利,保留所有权利) 进行许可。

评论(9)
星辰大海://。,
星辰大海://。,
这个建议用掌控板,它有3个串口
Nick-ccq
Nick-ccq
这个频繁初始化软串口没事的
三春牛-创客
三春牛-创客
唉!
KkQ1VrB7W776
KkQ1VrB7W776回复三春牛-创客
嗯嗯嗯
三春牛-创客
三春牛-创客回复KkQ1VrB7W776
700
共3条回复,已加载2条,点击查看更多共3条回复,已加载全部
三春牛-创客
三春牛-创客
这些冲突是不是有点离谱?

三春牛-创客
三春牛-创客
你重启一下吧
三春牛-创客
三春牛-创客回复皮皮鲁的鲁鲁西
我感觉mind+的东西好多都有冲突,都用不了。
皮皮鲁的鲁鲁西
皮皮鲁的鲁鲁西
作者
回复三春牛-创客
这种轮询重复初始化软串口的方法貌似一直能运行下去,如果改为向软串口发送问询帧,并读取应答帧,就会发生不知为何的错误,mind+官方提示说“软串口同时发送并读取数据”会发生错误,感觉很奇怪。

三春牛-创客
三春牛-创客
或者你改改再试试?
三春牛-创客
三春牛-创客
这个应该没问题吧。
三春牛-创客
三春牛-创客
我也不太懂
三春牛-创客
三春牛-创客
这个嘛...
- 没有更多了 -