串口采集数据偶尔出现突变值

2019-07-18 02:21发布

本帖最后由 hejin515 于 2015-11-4 16:23 编辑

如图,程序是采集串口发送来的数据,处理后实时显示在波形图表上然后存入TXT文档。但是昨晚采集了一晚上,整体曲线是对的,但是发现有几个夸张的突变(如图,一晚上的室内温度变化)。现在想两种解决方法:一时看看谁知道我程序哪里有问题,所以出现了那么夸张的野值。二是,进行适当的滤波,比较前后两个温度值,如果差值太大就舍弃新值用上一次的值代替。但是不知道这种方法具体该如何实现。各位有何高见,请不吝赐教!多谢了!! 单通道调试程序.png


1103-04~14h.png



友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
19条回答
ShuiMoLise
2019-07-19 18:02
关于终止符,千万别启用,不适合你现在的程序。
你说“如果某次校验发现数据不对,想用上一次的代替,或者直接舍去进行下次循环读取串口然后计算”,关于这个首先找出帧头帧尾就是确定数据是否有效的方法一,然后那个代码和校验就是确定这一帧数据发送过程中是否收到干扰出现错误。这两个解决了基本不会有问题。
现在说一下那个怎么用上一次的值替换,可以利用移位寄存器,本次的值先和移位寄存器里的值相减后取绝对值,然后看差值占原值的百分比,超过100%就认为数据无效把就使用上次的值

一周热门 更多>