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

devtools/2025/2/9 0:43:15/

文章目录

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


前言

以上就是今天要讲的内容,本文简单介绍了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_68">第二部分: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_78">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串口通信。


http://www.ppmy.cn/devtools/157215.html

相关文章

Go基础之环境搭建

文章目录 1 Go 1.1 简介 1.1.1 定义1.1.2 特点用途 1.2 环境配置 1.2.1 下载安装1.2.2 环境配置 1.2.2.1 添加环境变量1.2.2.2 各个环境变量理解 1.2.3 验证环境变量 1.3 包管理工具 Go Modules 1.3.1 开启使用1.3.2 添加依赖包1.3.3 配置国内包源 1.3.3.1 通过 go env 配置1.…

LLM框架对比选择:MaxKB、Dify、FastGPT、RagFlow【RAG+AI工作流+Agent]

1.MaxKB MaxKB Max Knowledge Base,是一款基于 LLM 大语言模型的开源知识库问答系统,旨在成为企业的最强大脑。它能够帮助企业高效地管理知识,并提供智能问答功能。想象一下,你有一个虚拟助手,可以回答各种关于公司内…

使用Django Rest Framework构建API

Django Rest Framework (DRF) 是一个强大且灵活的工具集,用以构建Web API。它基于Django,一个非常流行的Python Web框架。在本文中,我们将深入探讨如何使用DRF来构建一个高效、结构化的API。 目录 使用Django Rest Framework构建API 一、环…

如何使用deepseek开发一个翻译API

什么是deepseek Deepseek 是一个基于人工智能技术的自然语言处理平台,提供了多种语言处理能力,包括文本翻译、语义分析、情感分析等。它通过深度学习模型和大规模语料库训练,能够实现高质量的文本翻译和多语言理解。Deepseek 的核心优势在于…

Vim跳转文件及文件行结束符EOL

跳转文件 gf 从当前窗口打开那个文件的内容,操作方式:让光标停在文件名上,输入gf。 Ctrlo 从打开的文件返回之前的窗口 Ctrlwf 可以在分割的窗口打开跳转的文件,不过在我的实验不是次次都成功。 统一行尾格式 文本文件里存放的…

把bootstrap5.3.3整合到wordpress主题中的方法

以下是将 Bootstrap 5.3.3 整合到 WordPress 主题中的方法: 下载 Bootstrap 文件:从 Bootstrap 官网下载最新的 5.3.3 版本的 CSS 和 JavaScript 文件。 上传文件到主题目录:将下载的 CSS 文件上传到 WordPress 主题文件夹中的 /css 文件夹…

PostgreSQL中级认证价值

PostgreSQL,作为一款开源的关系型数据库管理系统,以其强大的功能、高度的可扩展性和稳定性,赢得了广泛的认可。对于非科班出身、IT知识储备有限的你,选择PostgreSQL中级认证专家的学习路径,不仅是一次技能的提升&#…

腾讯云 TI 平台部署与调用DeepSeek-R1大模型的实战指南

今天我们将继续探讨如何部署一个私有化的 DeepSeek-R1 大模型,具体的部署过程我们将利用腾讯云的 TI 平台进行操作。当前,腾讯云 TI 平台为用户提供了免费体验的满血版 DeepSeek-R1 大模型,同时该平台还提供了开放的 API 接口服务&#xff0c…