Arduino Mind+编程 轮询读取多个软串口数据的方法讨论
arduino uno连接多个ttl输出传感器数据时,需要定义多个软串口,进行数据接收,想到了一种比较笨的方法实现分时轮询读取,希望得到前辈高人的指点。https://img-blog.csdnimg.cn/3cf62c26b0104887a2392da01837a9cb.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA55qu55qu6bKB55qE6bKB6bKB6KW_,size_20,color_FFFFFF,t_70,g_se,x_16轮询过程data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==
通过变量i的状态值改变,实现轮询初始化软串口并进行数据读取。虽然从运行结果看,得到了预期的数据输出,但问题是,频繁的初始化软串口,是否是正确的方式,是否存在问题?
https://img-blog.csdnimg.cn/e8e760eee00e4ae4894409415ff0b366.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA55qu55qu6bKB55qE6bKB6bKB6KW_,size_8,color_FFFFFF,t_70,g_se,x_16data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==
主程序中只初始化物理串口,用于向串口屏输出指令。在循环执行中通过状态变量s控制轮询执行软串口1、2的读取函数。
https://img-blog.csdnimg.cn/2f146e7390a145d6afbdc13c85c46291.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA55qu55qu6bKB55qE6bKB6bKB6KW_,size_17,color_FFFFFF,t_70,g_se,x_16图为软串口1的初始化和读取函数data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==
软串口2的初始化和读取函数与1的方式相同。
通过以上设置实现了两个软串口分时轮询读取数据,即:两个软串口各读取3次,并在物理串口输出了格式化的串口屏指令:
https://img-blog.csdnimg.cn/ae428145223c41c7970bd4d1e77cf8d7.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA55qu55qu6bKB55qE6bKB6bKB6KW_,size_15,color_FFFFFF,t_70,g_se,x_16data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==频繁的初始化软串口,是否是正确的方式,是否存在问题? 请高人指点。
这个嘛... 我也不太懂 这个应该没问题吧。 或者你改改再试试? 你重启一下吧 赤星三春牛! 发表于 2022-2-6 10:59
你重启一下吧
这种轮询重复初始化软串口的方法貌似一直能运行下去,如果改为向软串口发送问询帧,并读取应答帧,就会发生不知为何的错误,mind+官方提示说“软串口同时发送并读取数据”会发生错误,感觉很奇怪。
皮皮鲁的鲁鲁西 发表于 2022-2-6 12:58
这种轮询重复初始化软串口的方法貌似一直能运行下去,如果改为向软串口发送问询帧,并读取应答帧,就会发 ...
我感觉mind+的东西好多都有冲突,都用不了。 这些冲突是不是有点离谱? 唉! 这个频繁初始化软串口没事的 这个建议用掌控板,它有3个串口 赤星三春牛! 发表于 2022-2-9 11:25
唉!
刷分专家,告诉我,有多少创造力了{:5_121:} KkQ1VrB7W776 发表于 2022-10-3 22:42
刷分专家,告诉我,有多少创造力了
700 赤星三春牛! 发表于 2022-10-4 20:28
700
嗯嗯嗯
页:
[1]