当前位置:   article > 正文

OpenMv串口通信多次接收数据减小误差_openmv串口接收数据

openmv串口接收数据

目录 
1. 串口通信概述
2. 多个数据采样减小误差
3. 代码实现 
3.1 串口初始化
3.2 多次数据采样 
3.3 数据处理
4. 结果验证

1.串口通信概述
串口通信是多数嵌入式系统常用的通信方式,通过串口可以实现与其他串口设备的通信,如GPS模块,蓝牙模块等。串口通信使用两根线发送和接收数据,RX接收数据,TX发送数据。

2.多个数据采样减小误差 
在接收串口数据时,由于线路噪声等原因,单次接收到的数据可能会有较大误差。为了减小误差,可以多次采样相同数据,然后取平均值。假设某次应该接收到的正确数据为D,第一次接收到D1,第二次D2,第三次D3,则最后得到的数据为(D1+D2+D3)/3,该结果会比任意一次的接收数据更加准确。3.代码实现
3.1 串口初始化
使用OpenMV开发板串口2与上位机通信,波特率115200,8位数据位,1位停止位,无奇偶校验。初始化代码如下:

  1. ```python 
  2. import sensor, image, time, pyb
  3. uart = pyb.UART(3, 115200, timeout_char = 1000
  4. ```
  5. 3.2 多次数据采样
  6. 这里采用for循环多次从串口接收数据,并存入list中。
  7. ```python
  8. data = []
  9. for i in range(10): 
  10.     d = uart.read()    # 读取一字节 
  11.     data.append(d) 
  12. ```

3.3 数据处理 
对采样得到的10个数据求平均,作为最终结果。

  1. ```python
  2. sum = 0 
  3. for d in data:
  4.    sum += d 
  5. result = sum / 10 
  6. ```

4.结果验证  
为了验证结果的准确性,这里在上位机中发送10个相同的字节数据(如0x32),OpenMV开发板接收并求平均后,结果应最接近0x32。本次试验结果为0x31,符合预期,证明多次采样的平均值比单次结果更加准确。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/399552
推荐阅读
相关标签
  

闽ICP备14008679号