赞
踩
目录
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位停止位,无奇偶校验。初始化代码如下:
- ```python
- import sensor, image, time, pyb
-
- uart = pyb.UART(3, 115200, timeout_char = 1000)
- ```
-
- 3.2 多次数据采样
- 这里采用for循环多次从串口接收数据,并存入list中。
- ```python
- data = []
- for i in range(10):
- d = uart.read() # 读取一字节
- data.append(d)
- ```
3.3 数据处理
对采样得到的10个数据求平均,作为最终结果。
- ```python
- sum = 0
- for d in data:
- sum += d
- result = sum / 10
- ```
4.结果验证
为了验证结果的准确性,这里在上位机中发送10个相同的字节数据(如0x32),OpenMV开发板接收并求平均后,结果应最接近0x32。本次试验结果为0x31,符合预期,证明多次采样的平均值比单次结果更加准确。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。