嵌入式硬件篇---OpenMV串口通信&json字符串


文章目录


前言

以上就是今天要讲的内容,本文简单介绍了Json字符串、UART串口通信。


第一部分:Json字符串

通信协议

传统的单片机应用 中,两个单片机串口通信 ,都是自己定义一些帧,包括帧头,数据帧,校验帧,帧尾,也就是通信协议的制定,编码解码程序的编写。

优点

稳定、高效

缺点

开发难度高

Json

优点

  1. 抽象程度高
  2. 不考虑大端小端
  3. 不考虑数据的byte转换
  4. 支持任意长的int,float
  5. 简单易懂,容易开发。
  6. 大多数语言、单片机中都有json模块

缺点

效率较低,json字符串的编码解码需要占用CPU资源

编码与解码

python 复制代码
json.dump(obj, stream, separators=None)

将 obj 序列化为 JSON 字符串,将其写入给定的 stream。

python 复制代码
json.dumps(obj, separators=None)

返回表示为 JSON 字符串的 obj。

python 复制代码
json.load(stream)

解析给定的 stream,将其解释为 JSON 字符串,并将数据反序列化为 Python 对象。返回结果对象。

python 复制代码
json.loads(str)

解析 JSON str 并返回一个对象。如果字符串格式不正确,将引发 ValueError 异常。

第二部分:UART串口通信

  1. UART:RX\TX(交叉连接)\GND(共地处理)
  2. UART 实现了标准的双工串行通信协议 。通信的单位是一个字符(不要与字符串字符混淆),可以是 8 位或 9 位宽
  3. OpenMV4 H7 Plus的串口UART(3)是P4-TX P5-RX

注意:

  1. 各种单片机(包括Arduino, OpenMV, esp8266, stm32, 51)使用的串口都是TTL串口!

  2. TTL串口的电压是3.3V或者5V

UART常用函数

python 复制代码
UART.read([nbytes])

读取字符。如果指定了 nbytes,则最多读取那么多字节,否则尽可能多地读取数据。

返回值:包含读取的字节的 bytes 对象。超时时返回 None。

python 复制代码
UART.readinto(buf[, nbytes])

将字节读入 buf。如果指定了 nbytes,则最多读取该数量的字节。否则,最多读取 len(buf) 字节。

返回值:读取并存储到 buf 中的字节数,或超时时返回 None。

python 复制代码
UART.readline()

读取一行,以换行字符结束。

返回值:读取的行,或在超时时为 None。

python 复制代码
UART.write(buf)

将字节缓冲区写入总线。

返回值:写入的字节数,或在超时时为 None。

注意

  1. write()方法可能将数据写入发送缓冲区,然后由硬件异步发送;
  2. read()方法则从接收缓冲区读取数据。

总结

以上就是今天要讲的内容,本文仅仅简单介绍了Json字符串、UART串口通信。

相关推荐
zcmodeltech9 分钟前
供热系统模型多工况控制系统设计:基于STM32与Modbus RTU的热源-管网-末端联动方案
大数据·stm32·单片机·嵌入式硬件·制造·数据库系统
半兽先生20 分钟前
2026年RAG系统主流开源文档解析工具选型指南:PaddleOCR、MinerU、LiteParse、HunyuanOCR、Apache Tika 全面对比
人工智能·python·机器学习·ai·开源
智闲电子设计1 小时前
STM32 定时器 PWM 实战:从呼吸灯到舵机控制
c语言·stm32·单片机·嵌入式硬件·学习
郝学胜-神的一滴2 小时前
Python 高级编程 026:内置数据结构之骈文纵论
开发语言·数据结构·python·程序人生·软件工程
DLYSB_9 小时前
存储运维实战:基于 Ceph Event 监听与 Python 适配器的分布式存储健康度物理声光响应架构
运维·ceph·python·报警灯
阿童木写作9 小时前
跨境图片翻译工具多合一,批量图片视频字幕翻译加智能抠图
人工智能·python·音视频·语音识别
azwsm10 小时前
驱动第一阶段——启动流程
单片机·嵌入式硬件
阿童木写作11 小时前
Python实现Temu图片批量翻译自动化教程
运维·人工智能·python·自动化
单片机杂货铺12 小时前
基于单片机的自动开窗器设计
stm32·嵌入式硬件·51单片机·硬件工程
就是一只白12 小时前
复制地理信息python版本
python