树莓派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.rhkb.cn/news/352879.html

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

相关文章

吴恩达2022机器学习专项课程C2W3:2.25 理解方差和偏差(诊断方差偏差正则化偏差方案搭建性能学习曲线)

目录 引言名词替代影响模型偏差和方差的因素1.多项式阶数2.正则化参数 判断是否有高偏差或高方差1.方法一:建立性能基准水平2.方法二:建立学习曲线 解决线性回归高偏差或高方差解决神经网络的高偏差或高方差1.回顾机器学习问题2.神经网络高方差和高偏差3…

【数据结构】第十六弹---C语言实现希尔排序

✨个人主页: 熬夜学编程的小林 💗系列专栏: 【C语言详解】 【数据结构详解】【C详解】 目录 1、希尔排序( 缩小增量排序 ) 1.1、预排序实现 1.2、希尔排序代码实现 1.3、代码测试 1.4、时空复杂度分析 1.5、性能比较 总结 上一弹我们…

【达梦数据库】typeorm+node.js+达梦数据库返回自增列值

1.配置环境,下载依赖包 typeorm init --name test22 --database mysql typeorm-dm,uuid,typeorm2,修改连接信息 修改src/ data-source.ts 文件 连接dm,可参考刚刚安装typeorm-dm 模块中的 README.md 3.修改自增信息 /* 修改前*/PrimaryGen…

后端常见问题解答-位运算实际场景讲解

位运算 在计算机存储的世界中,一切都是二进制的,位运算就是对二进制位进行操作的一种运算。位运算是计算机中的一种常见运算,可以用来提高性能和提升代码的可读性。 位运算有很多种,比如与、或、非、异或等,这些运算…

Docker中部署Jenkins+Pipline流水线基础语法入门

场景 DockerCompose中部署Jenkins(Docker Desktop在windows上数据卷映射): DockerCompose中部署Jenkins(Docker Desktop在windows上数据卷映射)-CSDN博客 DockerComposeJenkinsPipeline流水线打包SpringBoot项目(解…

Linux时间子系统6:NTP原理和Linux NTP校时机制

一、前言 上篇介绍了时间同步的基本概念和常见的时间同步协议NTP、PTP,本篇将详细介绍NTP的原理以及NTP在Linux上如何实现校时。 二、NTP原理介绍 1. 什么是NTP 网络时间协议(英语:Network Time Protocol,缩写:NTP&a…

【docker入门】

在软件开发过程中,环境配置是一个至关重要的步骤,它不仅影响开发效率,也直接关联到软件的最终质量。正确的环境配置可以极大地减少开发中的潜在问题,提升软件发布的流畅度和稳定性。以下是几个关键方面,以及如何优化环…

编写一个简单的Mybatis插件

1.编写一个类,实现Intercepter这个接口 2.完成这个类的方法,并通过注解Intercepts来告诉Mybatis这个插件拦截哪个类和哪个方法 3.在Mybatis的全局配置文件里注册这个插件,让插件生效 4.玩一个实际功能的插件

MySQL 示例数据库大全

前言: 我们练习 SQL 时,总会自己创造一些测试数据或者网上找些案例来学习,其实 MySQL 官方提供了好几个示例数据库,在 MySQL 的学习、开发和实践中具有非常重要的作用,能够帮助初学者更好地理解和应用 MySQL 的各种功…

树莓派4B学习笔记8:开机自启动Python脚本_kill关闭后台脚本

今日继续学习树莓派4B 4G:(Raspberry Pi,简称RPi或RasPi) 本人所用树莓派4B 装载的系统与版本如下: 版本可用命令 (lsb_release -a) 查询: Opencv 版本是4.5.1: 紧接着上篇文章学习的串口通信,今日学习如何让树莓派开机…

使用MyBatisPlus让数据库和实体类字段自动映射

文章目录 使用MyBatisPlus让数据库和实体类字段自动映射需求场景假如没有映射把映射放到sql语句中使用MyBatisPlus提供的注解简化映射 使用MyBatisPlus让数据库和实体类字段自动映射 需求场景 数据库表中的字段名字,与实体类中的属性名字不一致,我们想…

【Linux】进程间通信2——命名管道

1. 命名管道(FIFO) 1.1. 基本概念 简单,给匿名管道起个名字就变成了命名管道 那么如何给 匿名管道 起名字呢? 结合文件系统,给匿名管道这个纯纯的内存文件分配 inode,将文件名与之构建联系,关键点在于不给它分配 D…

618数码好物清单,这些好物你不容错过

每次的618大促中,有各类数码产品纷纷亮相,让人眼花缭乱,而且打折的力度都很高,那么在这个充满诱惑的购物季里,哪些电子数码好物值得你入手呢?今天,我就一起给题主盘点那些实用至上、绝对不吃灰的…

RT-Thread-Nano使能动态内存Heap后,程序无法运行

RT-Thread-Nano移植 1. 动态内存堆1.1 问题1.2 解决 3. 问题根源 1. 动态内存堆 1.1 问题 按照官方文档:在 RT-Thread Studio 上使用 RT-Thread Nano,新建nano工程后,可以正常运行。 但是开启内存管理后,系统无法正常启动&…

Docker高级篇之轻量化可视化工具Portainer

文章目录 1. 简介2. Portainer安装 1. 简介 Portianer是一款轻量级的应用,它提供了图形化界面,用于方便管理Docker环境,包括单机环境和集成环境。 2. Portainer安装 官网:https://www.portainer.io 这里我们使用docker命令安装&…

三分钟了解链动3+1模式

在电商领域的营销策略中,链动31模式以其独特的魅力和优势,吸引了众多商家的目光。下面,我们将对这一模式进行深度剖析,并探讨其相较于链动21模式的优势所在。 一、身份设置与奖励机制 链动31模式在身份设置上分为三种&#xff1…

C#观察者模式应用

目录 一、什么是观察者模式 二、C#中观察者模式的实现 三、两种实现的用法 1、事件与委托 2、IObserver和IObservable 四、参考文献 一、什么是观察者模式 观察者(Observer)模式的定义:指多个对象间存在一对多的依赖关系,当…

C++: shared_ptr是线程安全的吗

导读 C面试中有时会有这样一个问题,shared_ptr是线程安全的吗?对此问题,我们需要从三个并发场景进行考虑,拷贝shared_ptr的安全性、对shared_ptr赋值的安全性和读写shared_ptr指向内存区域的安全性。 对于以上问题,首…

python flask配置数据库并进行orm操作 flask_sqlalchemy

🌈所属专栏:【Flask】✨作者主页: Mr.Zwq✔️个人简介:一个正在努力学技术的Python领域创作者,擅长爬虫,逆向,全栈方向,专注基础和实战分享,欢迎咨询! 您的点…

Java——IO流(一)-(4/8):前置知识-字符集、UTF-8、GBK、ASCII、乱码问题、编码和解码等

目录 常见字符集介绍 标准ASCII字符集 GBK(汉字内码扩展规范,国标) Unicode字符集(统一码,万国码) 小结 字符集的编码、解码操作 方法 实例演示 常见字符集介绍 标准ASCII字符集 ASCll(American St…