目录

前期准备:关闭蓝牙

1.树莓派串口配置

2.禁用串口的控制台功能

3.测试(连接电脑进行测试)

参考文献


这里使用的是树莓派4B 

配置这个功能可以让我们的树莓派与其他设备例如stm32进行数据的交互和通信,实现两者之间的互相控制功能,这个还是非常实用的!

使用以下步骤即可:

树莓派包含两个串口

1.硬件串口(/dev/ttyAMA0),硬件串口由硬件实现,有单独的波特率时钟源,性能高,可靠。一般优先选择这个使用。

2.mini串口(/dev/ttyS0),mini串口时钟源是由CPU内核时钟提供,波特率受到内核时钟的影响,不稳定。

想要通过树莓派的GPIO引脚进行稳定的串口通信,需要修改串口的映射关系。

serial0是GPIO引脚对应的串口,serial1是蓝牙对应的串口,可以使用 ls -l /dev/serial*  查看当前的映射关系
————————————————
版权声明:本文为CSDN博主「galaxyzwj」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/zz531987464/article/details/83188189

前期准备:关闭蓝牙

在终端输入:

sudo systemctl disable hciuart 

禁用蓝牙设备即可,若以后想开启可以将disable改成enable

1.树莓派串口配置

输入以下指令后按照下面步骤进行配置

sudo raspi-config

Interfacing Options -> P6 Serial;

第一个选项(would you like a login shell to be accessible  over serial?)选择NO;

第二个选项(would you like the serial port hardware to be enabled?)选择 YES。

输入以下指令可以查看树莓派的串口映射关系

ls -l /dev/serial*

serial0(GPIO串口)默认使用的是ttyS0(mini串口);

serial1(蓝牙)使用的是ttyAMA0(硬件串口)

如果想使用稳定可靠的硬件串口,就要将树莓派的硬件串口与mini串口默认映射对换。而这个需求官方也考虑到了,在系统中放了一个实现这个功能的文件---stretch版本系统中的文件为/boot/overlays/pi3-miniuart-bt.dtbo。

sudo nano /boot/config.txt

使用该文件发挥功能只需在/boot/config.txt文件末尾添加一行代码,在文件最后面添加一行:dtoverlay=pi3-miniuart-bt

输入完成后,ctrl+o进行写入,不修改文件名称,直接回车即可完成写入,最后ctrl+x退出该文件。可以再次输入之前指令进入文件检查是否正确修改。

修改完成后 sudo reboot 重启树莓派后使用 ls -l /dev/serial* 查看映射如下:

如上图所示:serial0(GPIO串口)使用的是ttyAMA0(硬件串口);而serial1(蓝牙)使用的是ttys0(mini串口)
————————————————
版权声明:本文为CSDN博主「galaxyzwj」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/zz531987464/article/details/83188189

2.禁用串口的控制台功能

前面步骤已经交换了硬件串口与mini串口的映射关系,但是,现在还不能使用树莓派串口模块与电脑进行通信,因为,树莓派io口引出串口默认是用来做控制台使用的,即是为了用串口控制树莓派,而不是通信。所以我们要禁用此默认设置。

首先执行命令如下:

sudo systemctl stop serial-getty@ttyAMA0.service
sudo systemctl disable serial-getty@ttyAMA0.service

然后执行命令行:

sudo nano /boot/cmdline.txt

删除语句 console=serial0,115200  (没有的话就不需要此步骤)

保存之后其内容如下:

接下来再次重启树莓派即可。

最终的/boot/config.txt文件内容如下:

 3.测试(连接电脑进行测试)

1.硬件连接,将UART的TXD与树莓派的RXD连接,UART的RXD与树莓派的TXD连接,UART的GND与树莓派GND连接即可。

2.电脑端用xcom这款软件进行串口调试。(注意电脑和树莓派的波特率都配置为:9600

3.运行如下python程序来测试是否成功连接((网上很多方法都是用minicom进行测试,但是我的树莓派由于网络原因无法获取minicom的软件,所以就写了一个简单的python程序来测试是否成功实现串口功能。电脑端发送字符串,树莓派再返回电脑端发出的字符串,由此验证了字符串的收发)。

import numpy
import serial
import timedef main():#length=mygpio.ama0_write('the serial is open successfully!\r\n')#print(length)com = serial.Serial('/dev/serial0', 9600, timeout=10)while True:time.sleep(2)stri = com.readline().strip()data = (stri.decode('utf-8'))#utf-8->unicodeif len(data)>0:com.write(data.encode('ascii'))if __name__=='__main__':main()

4.运行程序并检验

在下方输入“the serial is ok”点击发送,上方返回同样的字符串,说明发送与接受都成功啦!

参考文献

[1] 树莓派3B+ 串口使用大全(实现串口通信功能)_Stay Hungry Stay Foolish-CSDN博客

【树莓派】树莓派TXD、RXD的配置与使用可实现与STM32的通信相关推荐

  1. 树莓派3B 系统安装及初始化配置教程

    本文仅供学习交流使用,如侵立删! 相关软件下载链接 SD卡格式化工具.系统烧录工具.Raspbian系统镜像 https://pan.baidu.com/s/1o5j_uD31hxLsPP–GRZ4B ...

  2. 树莓派Linux内核源码配置、编译、挂载(boot/kernal/根文件)、开启新内核

    目录 一.树莓派Linux源码配置(适合树莓派) 总体概述 配置的三种方式 1.照搬厂家的配置(使用这种方式) 2.参考厂家的配置(感受一下) 3.完全自主配置(需要一定工作经验) 二.树莓派Linu ...

  3. 树莓派4B入手体验及配置

    树莓派4B入手体验及配置 开箱体验 系统烧写 上电启动并配置 开箱体验 最近琐事着实太多,树莓派4B买来已有时日了,原打算买来后就分享一波体验的,结果硬生生的被搁置了近半个月了.废话不多哔哔了,据说树 ...

  4. 树莓派4安装centos7并配置环境

    树莓派4安装centos7并配置环境 一.安装系统 1.烧录系统 2.进入系统 二.硬盘扩容 三.安装软件 1.安装vim 2.换源 清理旧仓库 建立仓库 重建缓存 3.安装wget 4.安装gcc ...

  5. 树莓派摄像头c语言,树莓派图像处理之摄像头安装+配置教程

    树莓派图像处理之摄像头安装+配置教程 本文简单讲讲树莓派如何安装摄像头,以及一些配置和简单使用 树莓派的主板上有一个专门为摄像头模块预留的接口:CSI(Camera Serial Interface) ...

  6. 树莓派体验13 - 树莓派3B板载wifi配置方法

    树莓派3代B版自带板载wifi和蓝牙,因此想让树莓派通过wifi上网不再需要单独购买wifi模块,通过简单配置板载wifi即可快速实现. 配置方法在命令行操作,前提是你需要进入命令行终端,进入命令行终 ...

  7. Linux树莓派实战案例论文,树莓派|树莓派使用实例之:2 Pi R

    很多人都对树莓派的硬件 hack 功能(译注:就是用户可以自己发挥想像力,把树莓派设计成自己想要的机器)感兴趣,而我看中的一点是树莓派的低耗电功能,我可以用它来代替现在在用的 Linux 服务器.在以 ...

  8. 树莓派初学:烧镜像、电脑连接、摄像头使用、串口通信

    树莓派初学:烧镜像.电脑连接.摄像头使用.串口通信 刚做完电赛滚球控制系统,用到了树莓派,备份一下找的各种资料 一.树莓派连接: 初学者推荐网址:https://shumeipai.nxez.com/ ...

  9. 树莓派 树莓派 编c++_树莓派6年

    树莓派 树莓派 编c++ Raspberry Pi基金会的社区经理Ben Nuttall说, Raspberry Pi在2012年推出时即刻获得成功,第一天订购了10万台低成本计算机,第一年售出100 ...

最新文章

  1. python怎么读_如何用Python读写文件
  2. 用sql从文件中恢复数据库
  3. 互联网架构阶段 数据库读写分离 Amoeba
  4. java学习笔记之数组
  5. js如何在当前页面加载springmvc返回的页面_手写SpringMVC学习
  6. git配置用户信息_git系列教程(4)-单用户配置
  7. pandas.DataFrame的pivot()和unstack()实现行转列
  8. 机器学习笔记 增强学习与马尔科夫模型(1)
  9. java---同步与并发概念
  10. 拼多多协助广东警方打击网络黑灰产 15名嫌疑人于近日落网
  11. python3.7读取csv文件_Python3 读取csv文件
  12. 如何使用Greg Mori的Superpixel MATLAB代码
  13. python 使用迭代来创建集合
  14. 网络私有云存储的几点优势
  15. 知道一个公司的网站地址,怎么快速获取邮箱。
  16. Thinkphp6 搭建一套商城(拼团、秒杀、优惠券)
  17. python easydict 简单使用
  18. Android 各版本 设置 USB 默认连接 MTP 模式 ( Android 6.0+ )
  19. wmiprvse.exe cpu占用高怎么解决
  20. 安卓手机硬件信息修改 Device ID Changer 2020

热门文章

  1. APP推广骗局173人上当被骗200余万元
  2. 计算机如何查看网络延时,电脑上怎么看网络丢包?网络延时查看方法
  3. java类索引_java中索引的分类,图片详解
  4. 推荐电影 经典美剧
  5. FreeMind简介
  6. 【测试基础】Linux系统组成、目录结构及基本命令
  7. vue引入原生高德地图
  8. 【聆思CSK6 视觉AI开发套件试用】体验头肩检测和手势识别最全教程
  9. 对安卓View getLayoutParams和getLayoutParams理解错误的自我检讨
  10. Retina U-Net论文简析