树莓派|串口通信协议

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()

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++基础与深度解析 | 表达式 | 操作符

文章目录 一、表达式基础1.表达式的值类别2.表达式的类型转换 二、表达式详述1.算术操作符2.逻辑与关系操作符3.位操作符4.赋值操作符5.自增与自减运算符6.其他操作符三、C17对表达式的求值顺序的限定 一、表达式基础 表达式由一到多个操作数组成,可以求值并 ( 通常…

CKA-Ubuntu18.04安装Kubernetes集群

文档整理参考:虫之教育唐老师 文章目录 K8S是什么修改静态ip环境准备修改更新源安装Docker安装K8S-master1.安装kubeadm, kubelet, kubectl2.初始化3.创建kubeadm-config.yaml4.查看是否安装成功运行集群环境报错排查问题安装网络安装K8S-node1,2步参考master3.查看是否安装成…

用Swagger(工具Knife4j )代替postman来进行构建、测试和调试 API

什么是Swagger? Swagger 是一个用于设计、构建和文档化 RESTful Web 服务的开源框架。它允许开发者设计 API,然后生成对应的 API 文档,提供给团队成员或者第三方开发者查阅。Swagger 的核心是 OpenAPI 规范(之前称为 Swagger 规范…

SpringBoot集成Curator实现Zookeeper基本操作

系列文章目录 文章目录 系列文章目录前言 前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了就去分享给你的码吧。 Zookeeper是一个Ap…

python数据分析——seaborn绘图2

参考资料:活用pandas库 # 导入库 import pandas as pd import matplotlib.pyplot as plt import seaborn as sns tipspd.read_csv(r"...\seaborn常用数据案例\tips.csv") print(tips.head()) 1、成对关系表示 当数据大部分是数据时,可以使用…

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

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

在Windows环境下安装CPU版的PyTorch

PytTorch是基于Python开发的,首先需要安装Python,Python的安装很简单,这里不再赘述。而 Windows用户能直接通过conda、pip和源码编译三种方式来安装PyTorch。 打开PyTorch官网(PyTorch),在主页中根据自己的…

安卓AsyncTask使用

目录 一、简介1.1 AsyncTask 参数简介1.2 常用方法1.3 执行顺序1.4 使用注意1.5 使用步骤 二、使用示例三、应用场景 一、简介 public abstract class AsyncTask<Params, Progress, Result> {1.1 AsyncTask 参数简介 Params&#xff1a;开始异步任务执行时传入的参数类型…

安防视频汇聚/智能分析云平台EasyCVR调用localfile接口会返回日志的问题该如何解决?

视频汇聚/安防视频融合云平台EasyCVR视频监控系统支持多协议接入、兼容多类型设备&#xff0c;平台能在复杂的网络环境中&#xff08;专网、局域网、广域网、VPN、公网等&#xff09;将前端海量的设备进行统一集中接入与视频汇聚管理。视频监控/集中存储系统EasyCVR平台可支持国…

【LAMMPS学习】九、LAMMPS脚本 示例

9. 示例脚本 LAMMPS 发行版包含一个包含许多示例问题的示例子目录。许多是二维模型&#xff0c;运行速度快且易于可视化&#xff0c;在台式机上运行最多需要几分钟。每个问题都有一个输入脚本 (in.*)&#xff0c;并在运行时生成一个日志文件 (log.*)。有些使用初始坐标的数据文…

删除表空间

Oracle从入门到总裁:​​​​​​https://blog.csdn.net/weixin_67859959/article/details/135209645 当某个表空间中的数据不再需要时&#xff0c;或者新创建的表空间不符合要求时&#xff0c;可以考虑删除这个表空间。若要删除表空间&#xff0c;则需要用户具有 DROP TABLESP…

【微记录】dmidecode是干什么的?常用来做什么?如何查看系统支持的PCIe版本号(本质:标准,Desktop Management Interface)

是什么 dmidecode 是一个在 Linux 系统提取硬件信息的命令行工具。DMI 代表桌面管理接口&#xff08;Desktop Management Interface&#xff09;&#xff0c;是一种标准&#xff0c;收集桌面计算机的硬件信息&#xff0c;包括系统制造商、序列号、BIOS 信息、系统资产标签等。…