嵌入式硬件篇---OpenMV串口流和缓冲区



前言

本文简单介绍了OpenMV的串口流和缓冲区。


流和缓冲区

1. 流(Stream)的含义

定义

流 是一种抽象的数据传输模型,代表连续的数据流动。在UART通信中,数据通过串行接口字节流的形式逐位发送或接收

流强调数据的顺序性和连续性,类似于水流,数据按发送顺序依次到达接收端。

在OpenMV中的体现

  1. 发送流:通过UART的write()方法发送数据时,数据以流的形式逐字节传输。
uart.write(b'Hello World')  # 发送字节流
  1. 接收流:通过read()方法读取数据时,按接收顺序逐个字节处理
data = uart.read(10)  # 读取10个字节的流数据
  1. 特点
    异步传输:数据发送和接收不需要严格的时钟同步,仅依赖波特率
    实时性:数据流可实时处理,适用于传感器数据采集等场景。

2. 缓冲区(Buffer)的含义

定义

缓冲区 是硬件或软件中用于临时存储数据的内存区域。在UART通信中,缓冲区分为发送缓冲区和接收缓冲区

  1. 发送缓冲区:存储待发送的数据,由硬件逐步发送
  2. 接收缓冲区:存储已接收但尚未被程序读取的数据

在OpenMV中的实现

  1. 发送缓冲区:调用uart.write()时,数据首先写入发送缓冲区,由硬件异步发送。
uart.write(b'Data')  # 数据存入发送缓冲区后立即返回,不阻塞程序
  1. 接收缓冲区:当UART接收到数据时,字节暂存于接收缓冲区,直到通过read()读取。
if uart.any():  # 检查接收缓冲区是否有数据
    data = uart.read(uart.any())  # 读取全部缓冲区数据
</
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值