树莓派4B学习笔记7:(Python)_TTL串口收发数据_

今日继续学习树莓派4B 4G:(Raspberry Pi,简称RPi或RasPi)

 本人所用树莓派4B 装载的系统与版本如下:

 版本可用命令 (lsb_release -a) 查询:

 Opencv 版本是4.5.1:

 今日尝试使用树莓派的TTL串口进行收发数据:

文章提供测试代码讲解,整体代码贴出、测试效果图

目录

串口预设置:

关闭串口shell,打开串口调试:

查看默认串口分配:

安装serial库:

(Python)TTL串口收发数据:

TTL串口收发测试效果图:

安装minicom(串口调试助手):

启动使用minicom:

测试minicom:

设置/退出minicom:

网上学习资料贴出:


串口预设置:

关闭串口shell,打开串口调试:

sudo raspi-config

查看默认串口分配:

树莓派有两个串口可以使用,一个是硬件串口(/dev/ttyAMA0),另一个是mini串口(/dev/ttyS0)。硬件串口有单独的波特率时钟源,性能好,稳定性强;mini串口功能简单,稳定性较差,波特率由CPU内核时钟提供,受内核时钟影响。 

ls /dev/ser* -al

这个默认串口分配可以更改,我们使用用到的就是serial0,serial1则是蓝牙端口的串口

安装serial库:

sudo apt-get install python-serial

(Python)TTL串口收发数据:

代码写法1如下:

# coding: utf-8  # 明确指定编码  import serial  ser = serial.Serial("/dev/ttyS0", 115200) 
print('serial test start...\r\n')  
ser.write(b"Hello World!\r\n")  # 注意这里使用了字节字符串,因为 write 方法需要字节  try:  while True:  ser.write(ser.read())  # 发送读取到的数据  
except KeyboardInterrupt:  ser.close()

代码写法2如下:

# coding: utf-8
import serial
import time
# 打开串口
ser = serial.Serial("/dev/ttyS0", 115200)
def main():while True:# 获得接收缓冲区字符count = ser.inWaiting()if count != 0:# 读取内容并回显recv = ser.read(count)ser.write(recv)# 清空接收缓冲区ser.flushInput()# 必要的软件延时time.sleep(0.1)if __name__ == '__main__':try:main()except KeyboardInterrupt:if ser != None:ser.close()

TTL串口收发测试效果图:

 写法1测试效果如下:

  写法2测试效果如下:

安装minicom(串口调试助手):

sudo apt-get  install minicom

启动使用minicom:

minicom -D /dev/ttyS0 -b 115200
#-b代表波特率,-D代表端口,/dev/ttyAMA0(ttyS0) 类似于windows中的COM

测试minicom:

下方会显示接受到的数据,而我们发送的不会显示:

设置/退出minicom:

按下Ctrl+A:首先,你需要按下Ctrl键和A键同时,这会将你带入minicom的设置状态。

按下Z:接着,在按下Ctrl+A之后,再按下Z键。这将会显示minicom的帮助菜单或者设置菜单。

按下Q:在帮助菜单或设置菜单中,你可以通过按Q键来退出minicom。这将不会复位modem,而是直接退出minicom。

网上学习资料贴出:

【树莓派】树莓派配置串口通讯-CSDN博客

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

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

相关文章

mysql替换部分内容

UPDATE 表名 SET 字段名 REPLACE(字段名, ‘原内容’, 新内容)

中电联系列四:rocket手把手教你理解中电联协议!

分享《慧哥的充电桩开源SAAS系统,支持汽车充电桩、二轮自行车充电桩。》 电动汽车充换电服务信息交换 第4部分:数据传输与安全 Interactive of charging and battery swap service information for electric vehicle Part 4:Data transmission and secu…

【GreenHills】GHS-Point导致的调试HardFault错误

【更多软件使用问题请点击亿道电子官方网站】 1、 文档背景 该客户使用的IDE为S32 Design Studio for ARM ,使用的编译器为GHS compiler,调试器为PE。 客户在使用Ceil函数进行函数调用时,编译可以正常通过,但调试无法成功运行。…

SQL中distinct去重关键字的使用和count统计组合的使用

文章目录 SQL中distinct的使用1、distinct作用于单列2、distinct作用于多列3、 count()、distinct组合使用conut扩展知识 SQL中distinct的使用 1、distinct作用于单列 语法: select distinct 列名 from 表; distinct必须在列的前面,否则直…

JavaScript变成anyScript了

any类型 目录 any类型 目录污染问题 首先说明一下,本人是前端小学生级别的菜鸡,吐槽的话请口下留情,在评论区指出错误或者补充不足,我会很喜欢,互喷不会进步,相互指点才会。。。。谢谢大家啦 &#x1f…

基于MATLAB仿真的BCC卷积码维特比译码算法

🧑🏻个人简介:具有3年工作经验,擅长通信算法的MATLAB仿真和FPGA实现。代码事宜,私信博主,程序定制、设计指导。 🚀基于MATLAB仿真的BCC卷积码维特比译码算法 目录 🚀1.BCC卷积码概…

Java的核心类库

引言 在Java编程中,熟练掌握常用类与对象操作是开发的基础。Java的核心类库提供了丰富的功能,可以帮助开发者高效地处理各种编程任务。本文将详细介绍Java字符串操作、集合框架、日期与时间处理等内容,并通过图表和表格进行总结与示范。 字符…

Tailwind CSS 实战指南:快速构建响应式网页设计

title: Tailwind CSS 实战指南:快速构建响应式网页设计 date: 2024/6/12 updated: 2024/6/12 author: cmdragon excerpt: 这篇文章介绍了Tailwind CSS框架的特点与优势,包括其作为实用性的CSS框架如何通过预设的样式类实现快速布局和设计,…

每日一题——Python实现PAT乙级1109 擅长C(举一反三+思想解读+逐步优化)七千字好文

一个认为一切根源都是“自己不够强”的INTJ 个人主页:用哲学编程-CSDN博客专栏:每日一题——举一反三Python编程学习Python内置函数 Python-3.12.0文档解读 目录 初次尝试 代码分析 时间复杂度 空间复杂度 总结 我要更强 代码结构与功能 全局…

springboot+shiro+jwt 兼容session和token

最近和别的软件集成项目,需要提供给别人接口来进行数据传输,发现给他token后并不能访问我的接口,拿postman试了下还真是不行。检查代码发现项目的shiro配置是通过session会话来校验信息的 ,我之前一直是前后端自己写,用…

北京知名机床编程入门培训:探索技术的奥秘与突破

北京知名机床编程入门培训:探索技术的奥秘与突破 在北京这座科技与创新交织的城市中,机床编程作为现代制造业的核心技术,吸引了众多求学者的目光。而想要真正掌握这门技术,选择一家知名的机床编程入门培训机构显得尤为关键。本文…

学习Pr有哪些常见的使用的技巧?

本Premiere 学习笔记总结常见问题165条。不管你是初学的小白,或是刚进入剪辑学习软件阶段,还是说你学软件好几年了都有用处。因为这份总结涉及到了Pr的各个方面。既可以帮你解决软件出现的问题,也可以帮你熟知软件的实际应用,以及…

【江湖】离职经验之人在江湖

人在职场江湖 分享外面看不到的职场经验、人情世故和社会潜规则 一、老实人别再吃亏了!这些离职原因HR听了都闭嘴: 1、不说:活多钱少 要说:跟不上节奏 2、不说:公司哪里不好 要说:十分感谢公司对我的栽…

C# WPF入门学习番外篇(二) —— C# WPF使用数据库创建注册登录界面

C# WPF入门学习番外篇(二) —— C# WPF使用数据库创建注册登录界面 在这篇番外篇博客中,我们将介绍如何在C# WPF应用程序中使用数据库来创建一个简单的注册和登录界面。通过本教程,你将学习到如何在WPF中与数据库进行交互&#xf…

网格细分技术在AI绘画中的革新应用

导语: 随着人工智能技术的不断突破,艺术创作也迈入了一个新的时代。AI绘画不仅为艺术家提供了新的工具和灵感源泉,还极大地扩展了艺术的边界。在这背后,网格细分技术扮演着至关重要的角色,它通过将画面划分为数以万计的…

Android低代码开发 - 直接创建一个下拉刷新列表界面

看了我Android低代码开发 - 让IDE帮你写代码这篇文章的小伙伴,大概都对Dora全家桶开发框架有基本的认识了吧。本篇文章将会讲解如何使用dora-studio-plugin快捷创建一个下拉刷新列表界面。 效果演示 这样直接通过图形界面的方式就创建好了下拉刷新上拉加载空态界面…

旅游行业电商平台:数字化转型的引擎与未来发展趋势

引言 旅游行业数字化转型的背景和重要性 随着信息技术的飞速发展,数字化转型成为各行业发展的必然趋势。旅游行业,作为一个高度依赖信息和服务的领域,数字化转型尤为重要。通过数字化手段,旅游行业能够实现资源的高效配置、服务的…

用映射对比ab俩个数组 , 并把a的参数传递给b

项目背景 : react ant 需求 : 在项目进行表头设置时,根据aaa中的key和bbb中的name对应 , 并将sort值插入到bbb中 其中 a b 结构如下 具体实现 aaa[ { key: "orderNumber", orderNumber: "工单编号", sort: 1 } ... ]bbb [ { name: "orderNumber…

Jenkins For Windows编译构建C#项目环境搭建(完整版)

安装Jenkins 下载Windows安装包 官方下载地址 选择稳定版,这里下载的是最新版,如需下载指定版本点击 以前的发行版 配置java环境 下载 java jdk 17 jdk17官方下载链接 这里下载的是msi版本的安装包 安装jdk17 双击运行安装包,一直下…

【Android】Android获取设备Serial Number的方法

项目需求 获取Android 9 和Android 11的设备的SN序列号 解决方案 1.Android 9 获取方式 这个是Android官方提供的方法,可以获取到Android 8/9 的设备的SN号 String serial Build.SERIAL;Android 11 获取方式 Android 11 已经禁止了上面的这种方法,获…