当前位置: 首页 > news >正文

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


文章目录

  • 前言
  • 第一部分:Json字符串
    • 通信协议
      • 优点
      • 缺点
    • Json
      • 优点
      • 缺点
      • 编码与解码
  • 第二部分:UART串口通信
    • UART常用函数
    • 注意
  • 总结


前言

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


第一部分:Json字符串

通信协议

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

优点

稳定、高效

缺点

开发难度高

Json

优点

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

缺点

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

编码与解码

json.dump(obj, stream, separators=None)

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

json.dumps(obj, separators=None)

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

json.load(stream)

解析给定的 stream,将其解释为 JSON 字符串,并将数据反序列化为 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

注意:
4. 各种单片机(包括Arduino, OpenMV, esp8266, stm32, 51)使用的串口都是TTL串口!
5. TTL串口的电压是3.3V或者5V

UART常用函数

UART.read([nbytes])

读取字符。如果指定了 nbytes,则最多读取那么多字节,否则尽可能多地读取数据。
返回值:包含读取的字节的 bytes 对象。超时时返回 None。

UART.readinto(buf[, nbytes])

将字节读入 buf。如果指定了 nbytes,则最多读取该数量的字节。否则,最多读取 len(buf) 字节。
返回值:读取并存储到 buf 中的字节数,或超时时返回 None。

UART.readline()

读取一行,以换行字符结束。
返回值:读取的行,或在超时时为 None。

UART.write(buf)

将字节缓冲区写入总线。
返回值:写入的字节数,或在超时时为 None。

注意

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

总结

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

http://www.lryc.cn/news/533203.html

相关文章:

  • Python基于Django的课堂投票系统的设计与实现【附源码】
  • 蓝桥杯 Java 之输入输出
  • Kubernetes是什么?为什么它是云原生的基石
  • @emotion/styled / styled-components创建带有样式的 React 组件
  • Android 常用命令和工具解析之Battery Historian
  • 家用报警器的UML 设计及其在C++和VxWorks 上的实现01
  • k8s常见面试题2
  • CSS 伪类(Pseudo-classes)的详细介绍
  • 将Deepseek接入pycharm 进行AI编程
  • 【Ollama】一、介绍
  • ASP.NET Core JWT
  • 查询引擎:它们是什么以及为什么重要
  • 03/29 使用 海康SDK 对接时使用的 MysqlUtils
  • 2025.2.7 Python开发岗面试复盘
  • 一个sql只能有一个order by
  • Windows Docker笔记-在容器中运行项目
  • postgreSQL16.6源码安装
  • 寒假2.5
  • 定期删除一周前的数据,日志表的表空间会增长吗?
  • yum 安装mysql
  • Servlet笔记(下)
  • Windows 中学习Docker环境准备3、在Ubuntu中安装Docker
  • 【centOS】搭建公司内网git环境-GitLab 社区版(GitLab CE)
  • Unity DoTween使用文档
  • 【办公类-99-01】20250201学具PDF打印会缩小一圈——解决办法:换一个PDF阅读器
  • 组合总和II(力扣40)
  • 基于HTML生成网页有什么优势
  • php 接入扣子的 token获取
  • Redis02 - 持久化
  • 【力扣】240.搜索二维矩阵 II