Ardiono 和 Processing 之间的串口通讯

文章讲述了在Arduino通过串口每800ms发送红外传感器数据到Processing时,Processing在开始播放视频时关闭数据接收。当视频结束后重新接收数据时,会出现接收历史数据的问题。解决方案包括在播放视频后清空串口缓存区,以确保获取最新数据,但可能造成短暂的数据延迟。
摘要由CSDN通过智能技术生成

Arduino 和 Processing 之间进行串口通讯。

  1. 测试的背景:

1,Arduino  每隔800ms ,就将红外传感器检测的结果,以串口的形式发送出去。

Serial.println("hasBody");

2, Processing 端接收数据,并不是一直都在接收。Processing 在接收到有效数据之后,就开始播放视频,在开始播放视频的瞬间,就将接收串口数据的功能模块进行关闭。

测试发现的问题: 在Processing 开始新一轮的数据接收程序之后,我们会发现一次接收了 很多次的  hasbody , hasbody 的数量正好和视频的长度是对应的。

  1. 解决的方法

1,Processing 端在视频播放完毕后,在开启新的串口指令之前,需要将myport的串口进行清空。 这样 会保证串口缓存区接收到的永远是最新的数据。缺点就是:可能会耽误一个检测的时间周期,例如本例中,就是800ms;

2,Processing 端 调用指令myPort.clear();  // 此行代码作用是:清空串口缓存区。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值