树莓派|串口通信协议

1、串口通信原理

        串口通讯(Serial Communication),是指外设和计算机间,通过数据信号线、地线等,按位进行传输数据的一种通讯方式。串口是一种接口标准,它规定了接口的电气标准,没有规定接口插件电缆以及使用的协议。串口按电气标准及协议来划分,包括RS-232-C、RS-422、RS485等。

        一个字符一个字符地传输,每个字符一位一位地传输,并且传输一个字符时,总是以“起始位”开始,以“停止位”结束,字符之间没有固定的时间间隔要求。每一个字符的前面都有一位起始位(低电平),字符本身由7位数据位组成,接着字符后面是一位校验位(检验位可以是奇校验、偶校验或无校验位),最后是一位或一位半或二位停止位,停止位后面是不定长的空闲位,停止位和空闲位都规定为高电平。实际传输时每一位的信号宽度与波特率有关,波特率越高,宽度越小,在进行传输之前,双方一定要使用同一个波特率设置。

        

 2、树莓派串口通信接口 

        树莓派的串口为UART,即通用异步收发传输器(Universal Asynchronous Receiver/Transmitter),或叫UART(串口)控制器。使用UART控制器进行数据传输的就叫做串口通信,是一种通用全双工串行、异步通信方式。常用与嵌入式系统中的主机与辅助设备之间通信。异步表示发送器与接收器的时钟不同步。UART通信有3条线:发送线TX、接收线RX、电平参考地线GND。

接线的方法就是 :

  • VDD接树莓派的5V电源

  • GND接树莓派的ground

  • TXD接树莓派的RXD

  • RXD接树莓派的TXD

3、进行串口通信的步骤

        硬件连接:使用一根合适的串口线将串口设备连接到树莓派的GPIO引脚,具体来说是将串口的TX(发送)引脚连接到树莓派的RXD引脚,将串口的RX(接收)引脚连接到树莓派的TXD引脚。请确保正确连接。

        禁用串口终端:在Raspbian Stretch中,默认情况下,树莓派的串口被用作终端,而不是作为通用串口。因此,需要通过修改启动配置文件来禁用串口终端。

  打开终端并输入以下命令编辑配置文件:

sudo nano /boot/cmdline.txt

在编辑器中找到类似下面这段文本:

console=serial0,115200

删掉该行或者将其注释掉(在行首添加#),然后保存并退出编辑器。

启用串口硬件:打开终端并输入以下命令编辑另一个配置文件:

sudo nano /boot/config.txt

在文件的最后添加以下两行:

enable_uart=1
dtoverlay=pi3-miniuart-bt

配置串口参数:在终端中安装pyserial模块,该模块可以帮助您进行串口通信。输入以下命令安装pyserial:

pip install pyserial

使用Python代码进行串口通信:创建一个Python脚本,使用pyserial模块进行串口通信。以下是一个示例代码片段:

import serial

# 配置串口参数
port = '/dev/serial0'   # 串口设备路径
baudrate = 9600         # 波特率

# 打开串口连接
ser = serial.Serial(port, baudrate)

# 发送数据
data = 'Hello, World!\n'
ser.write(data.encode())

# 接收数据
response = ser.readline()
print(response.decode())

# 关闭串口连接
ser.close()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/626838.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

霍廷格电源 Tru plasma DC3030 通快DC3040 MF3030

霍廷格电源 Tru plasma DC3030 通快DC3040 MF3030

谈谈 Spring 的过滤器和拦截器

前言 我们在进行 Web 应用开发时,时常需要对请求进行拦截或处理,故 Spring 为我们提供了过滤器和拦截器来应对这种情况。那么两者之间有什么不同呢?本文将详细讲解两者的区别和对应的使用场景。 (本文的代码实现首先是基于 Sprin…

【微命令】git config如何配置全局的用户和邮箱?(--global user.name、user.email;git config --help)

虽然经常用,也经常忘记,特此记录。 命令 git config --global user.name "myname" git config --global user.email test163.com另外一种方式 help git config --help |grep email | grep name直接help查看

OpenAI推出旗舰AI模型GPT-4o并免费开放

🦉 AI新闻 🚀 OpenAI推出旗舰AI模型GPT-4o并免费开放 摘要: OpenAI 未来的产品将以免费为优先,以让更多人使用为目标。OpenAI 发布了桌面版本的程序和更新后的 UI,更加简单自然。推出了新一代大模型 GPT-4o&#xf…

PLL-分频器

概念 分频器的性能一般用四个参数来规定:(1)分频比,(2)最大允许输入频率fmax,(3)功耗,(4)最小允许输入电压摆幅(也叫“灵敏度”)。虽然分频器的相位噪声也很重要,但在大多数情况下它可以忽略不计。 把一般分频器的输入灵敏度画成…

AI实景自动无人直播软件:引领直播新时代的智能化创作工具,实现一部手机24小时直播拓客

在科技飞速发展的今天,AI实景自动无人直播软件以其独特的功能和便捷性,正成为商家和内容创作者们的利器。这款先进的软件支持智能讲解、一键开播、智能回复以及手机拍摄真实场景等特性,为用户呈现了全新的直播体验,引领着直播行业…

K8s 二进制部署 上篇

一 K8S按装部署方式: ① Minikube Minikube是一个工具,可以在本地快速运行一个单节点微型K8S,仅用于学习、预览K8S的一些特 性使用。 部署地址:https://kubernetes.io/docs/setup/minikube ② Kubeadmin Kubeadmin也是一个工…

目标检测算法YOLOv6简介

YOLOv6由Chuyi Li等人于2022年提出,论文名为:《YOLOv6: A Single-Stage Object Detection Framework for Industrial Applications》,论文见:https://arxiv.org/pdf/2209.02976 ,项目网页:https://github.c…

深度学习设计模式之简单工厂模式

文章目录 前言一、简单工厂设计模式的作用?二、详细分析1.核心组成2.实现步骤3.示例代码4.优缺点优点缺点 5.使用场景 总结 前言 本文主要学习简单工厂设计模式,这个设计模式主要是将创建复杂对象的操作单独放到一个类中,这个类就是工厂类&a…

详述进程的地址空间

进程的地址空间 合法的地址 (可读或可写) 代码 (main, %rip 会从此处取出待执行的指令),只读数据 (static int x),读写堆栈 (int y),读写运行时分配的内存 (???),读写动态链接库 (???) 非法的地址 NULL,导致 se…

Gooxi发布最新AI服务器:加速生成式AI落地 更懂AI

近日,Gooxi发布最新训推一体AI服务器,以大容量内存和灵活的高速互连选项满足各种AI应用场景,最大可能支持扩展插槽,从而大幅提升智能算力性能,以最优的性能和成本为企业的模型训练推理落地应用提供更好的通用算力。 AI…

FSMC的NOR Flash/PSRAM 控制器功能介绍(STM32F4)

目录 概述 1 FSMC支持的类型 1.1 信号类型概述 1.2 FSMC的应用 2 外部存储器接口信号 2.1 I/O NOR Flash 2.2 PSRAM/SRAM 3 支持的存储器和事务 4 通用时序规则 5 NOR Flash/PSRAM 控制器异步事务 5.1 模式 1 - SRAM/PSRAM (CRAM) 5.2 模式 A - SRAM/PSRAM (CRAM…

GPU Burn测试指导

工具下载链接: https://codeload.github.com/wilicc/gpu-burn/zip/master测试方法: 上传工具到操作系统下,解压缩工具,使用make命令完成编译(确保cuda环境变量已经配置成功、 nvcc -v能显示结果)。 如果安…

图扑智慧农业——生态鱼塘数字孪生监控

智慧农业园作为新型农业经营模式,正在以其高效、环保、可持续的特点受到广泛关注。智慧鱼塘作为智慧农业中一项关键技术,结合物联网、人工智能、云计算等技术,实现对新型养殖模式的实时监控、优化与管理。 效果展示 图扑软件应用自研 HT for…

CVE-2024-4761 Chrome 的 JavaScript 引擎 V8 中的“越界写入”缺陷

分析 CVE-2024-4761 和 POC 代码 CVE-2024-4761 描述 CVE-2024-4761 是一个在 V8 引擎中发现的越界写漏洞,报告日期为 2024-05-09。这个漏洞可能允许攻击者通过特制的代码执行任意代码或者造成内存破坏,进而导致程序崩溃或其他不安全行为。 POC 代码解…

群辉部署小雅alist实现视听盛会

最近群辉搭建起来了,开始整蛊影视库,之前搞过nastool。这次折腾下小雅alist。 1.下载并安装 直接在群辉的docker里面下载映像 主要映射下端口和文件夹 #token mytoken.txt 获取地址:https://alist.nn.ci/zh/guide/drivers/aliyundriv…

IBM Granite模型开源:推动软件开发领域的革新浪潮

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…

01基础篇

1、初识 JVM 1.1 什么是 JVM JVM 全称是 Java Virtual Machine,中文译名 Java虚拟机。JVM 本质上是一个运行在计算机上的程序,他的职责是运行Java字节码文件。 Java源代码执行流程如下: 分为三个步骤: 编写Java源代码文件。使用…

【Linux】线程机制解析:理解、优势与Linux系统应用

文章目录 前言:1. 线程概念1.1. 什么是线程1.2. 线程得优点:1.3. 线程的缺点线程异常线程的用途 2. 线程的理解(Linux 系统为例)2.1. 为什么要设计Linux“线程"?2.2. 什么是进程?2.3. 关于调度的问题2…

基于EBAZ4205矿板的图像处理:11阈值系数可调的图像局部阈值二值化

基于EBAZ4205矿板的图像处理:11阈值系数可调的图像局部阈值二值化 没写完,局部阈值二值化算法本身和算法的fpga部署思路没有讲,有空时补充 先看效果 还是一样拿我的pynq当模特,然后用usb——HDMI采集卡把输出图像采集到电脑上。…