树莓派3B+:串口通讯

  • 背景
  • 一、树莓派串口通讯是什么?
  • 二、使用步骤
    • 1.树莓派串口知识
    • 2.查看当前的串口使用及映射关系
    • 3.释放串口ttyAMA0
    • 3.代码控制串口,验证是否可用
  • 三、minicom串口回环测试
    • 1.安装minicom
    • 2.配置minicom
    • 3.回环测试
    • 4.minicom其他常用指令
  • 补充

背景

树莓派控制信号源,信号源使用的是RS232串口通讯,因此需要打开树莓派的串口。


一、树莓派串口通讯是什么?

指令:

gpio readall

树莓派串口通讯使用的是树莓派的8、10针(GPIO15、16),一发一收引脚。

官网介绍:GPIO引脚


二、使用步骤

1.树莓派串口知识

树莓派包含两个串口:ttyAMA0、ttyS0
ttyAMA0:硬件串口,由硬件实现,稳定性高,有单独的波特率时钟源,一般与其他硬件的串口通讯使用ttyAMA0
ttyS0:mini串口,时钟源是由CPU内核时钟提供的,因此当CPU使用率高时,其波特率不稳定。

serial0GPIO引脚对应的串口,主串口
serial1是蓝牙bt对应的串口,辅助串口


2.查看当前的串口使用及映射关系

ls -l /dev/serial*


当前开放串口只有蓝牙串口serial1,连接的是ttyAMA0


3.释放串口ttyAMA0

官方在树莓派/boot/overlays/README中明确写到:

Name:   disable-bt
Info:   Disable onboard Bluetooth on Pi 3B, 3B+, 3A+, 4B and Zero W, restoring     UART0/ttyAMA0 over GPIOs 14 & 15.
N.B. To disable the systemd service that initialises the modem so it  doesn't use the UART, use 'sudo systemctl disable hciuart'.
Load:   dtoverlay=disable-bt
Params: <None>

即,通过使用 dtoverlay=disable-bt 可以禁用 Pi 3B、3B+、3A+、4B和零W上的板载蓝牙,通过 GPIO 14 和 15 恢复 UART0 /ttyAMA0。
同时,要禁用初始化调制解调器的 systemd 服务,使其不使用 UART,请使用

sudo systemctl disable hciuart

现在我们按照操作来逐步进行设置:

第一步:在树莓派/boot/config.txt中最后一行添加

dtoverlay=disable-bt




重启后会发现蓝牙不再开启,但是提示以下内容:

解决方法:设置串口可以进行通信,但是禁止串口的控制台功能。

立即重启

第二步:输入如下指令,关闭服务。

sudo systemctl disable hciuart


此时再重新查看下串口使用及映射关系

对比下最初的串口使用:

可以看出:ttyAMA0已经重新分配给主串口,可以通过引脚进行通讯

3.代码控制串口,验证是否可用

直接使用树莓派自带的python3来编写代码

python3
import serial
ser = serial.Serial('/dev/ttyAMA0',115200)

此时会直接报错:串口ttyAMA0访问被拒绝

此时,修改ttyAMA0权限

sudo chmod 777 /dev/ttyAMA0

重新打开串口会发现成功。


至此,树莓派串口ttyAMA0的使用结束


三、minicom串口回环测试

1.安装minicom

sudo apt-get install minicom

2.配置minicom

sudo minicom –s


进入到“Serial port setup”,设置A和F

键盘控制输入A,更改后回车,键盘控制输入F,回车,再回车

保存当前配置为默认配置

退出,选择Exit from Minicom

3.回环测试

第一步:用杜邦线连接Pin8(TxD)和Pin10(RxD)引脚。
第二步:运行 sudo minicom

可以看到打开的是ttyAMA0
第三步:Ctrl+A 按下E选择回显。
第四步:输入信息hello,显示为hheelllloo

YES!至此从软件(python3的Serial)和硬件(minicom串口回显)都验证了串口ttyAMA0已经可以正常使用。

4.minicom其他常用指令

Ctrl+A W:当显示的内容超过一行之后自动换行

Ctrl+A C:清屏

Ctrl+A X:退出minicom


补充

PS:本方式适用于禁止使用蓝牙,如果依然需要使用蓝牙通讯,请在/boot/config.txt中使用dtoverlay=miniuart-bt,并按照下列内容进行其他更改;

Name:   miniuart-bt
Info:   Switch the onboard Bluetooth function on Pi 3B, 3B+, 3A+, 4B and Zero W to use the mini-UART (ttyS0) and restore UART0/ttyAMA0 over GPIOs 14 & 15.
Note that this may reduce the maximum usable baudrate.
N.B. It is also necessary to edit /lib/systemd/system/hciuart.service and replace ttyAMA0 with ttyS0, unless using Raspbian or another  distribution with udev rules that create /dev/serial0 and /dev/serial1,   in which case use /dev/serial1 instead because it will always be  correct. Furthermore, you must also set core_freq and core_freq_min to   the same value in config.txt  or the miniuart will not work.
Load:   dtoverlay=miniuart-bt,<param>=<val>
Params: krnbt    Set to "on" to enable autoprobing of Bluetooth   driver without need of hciattach/btattach

树莓派3B+:串口通讯相关推荐

  1. MQTT协议应用场景1: 外网手机客户端 与 内网树莓派3B 的通讯

    实验目的:将外网手机客户端发送的字符串 通过树莓派3B的串口输出 不了解MQTT协议的请参考:MQTT协议体验 Mosquitto安装和使用 不了解使用Python操作树莓派串口的请参考:Raspbe ...

  2. python树莓派串口通信实例_Python实现树莓派USB串口通讯及云端对接

    → USB串口通讯 树莓派上自带一个串口,用于连接蓝牙或是串口命令行,串口资源很少,对于嵌入式的应用来说串口设备很多,需要的串口数量也很多,因为通过USB外接串口是一个不错的选择. 1. 我手中的US ...

  3. 树莓派python串口中文输出_Python实现树莓派USB串口通讯

    → USB串口通讯 树莓派上自带一个串口,用于连接蓝牙或是串口命令行,串口资源很少,对于嵌入式的应用来说串口设备很多,需要的串口数量也很多,因为通过USB外接串口是一个不错的选择. 1. 我手中的US ...

  4. python进行usb通讯_Python实现树莓派USB串口通讯

    → USB串口通讯 树莓派上自带一个串口,用于连接蓝牙或是串口命令行,串口资源很少,对于嵌入式的应用来说串口设备很多,需要的串口数量也很多,因为通过USB外接串口是一个不错的选择. 1. 我手中的US ...

  5. 树莓派3b+串口配置

    前言 树莓派从大的方向来说一共出了3代,每一代的CPU外设基本相同,但内核不同,外设里面一共包含两个串口,一个称之为硬件串口(/dev/ttyAMA0),一个称之为mini串口(/dev/ttyS0) ...

  6. 树莓派3b+串口/TTL采集噪声传感器PG-760/ZY-C python程序

    需要准备的东西 1.树莓派3b+: 2.噪声传感器,我用的是串口/TTL款的,5V供电: 硬件接线 ## 实物接线图 树莓派串口配置 此节参考添加链接描述 (1)修改cmdline.txt文件 编辑c ...

  7. 树莓派3B+ 串口使用大全(实现串口通信功能)

    1.树莓派串口控制台功能 在2018-10-09-raspbian-stretch.img镜像中,要使用串口来调试设备,需要修改conig.txt文件. 1. sudo systemctl disab ...

  8. 树莓派3B 串口配置教程

    前言 修改配置 串口测试 1.前言 树莓派CPU内部有两个串口,一个是硬件串口(官方称为PL011 UART),一个是迷你串口(官方成为mini-uart).在树莓派2B/B+这些老版树莓派上,官方设 ...

  9. 树莓派串口通信编码_树莓派3B 串口通信超详细

    1.下载pi3-miniuart-bt-overlay.dtb,并将dtb文件拷贝到/boot/overlays/目录下 下载地址:http://pan.baidu.com/s/1qXS0hoK 2. ...

  10. 树莓派3B+ubuntu系统串口调试

    零. 介绍 树莓派有2个串口:硬件串口(/dev/ttyAMA0)和mini串口(/dev/ttyS0) **PL011 UART(硬件串口):**有单独的波特率时钟源,性能高.可靠 **mini U ...

最新文章

  1. ZYNQ EMIO使用及可重用封装
  2. 字符序列pascal程序
  3. Kotlin实现LeetCode算法题之Median of Two Sorted Arrays
  4. python循环五要素_python常见单词在手,编程入门不愁
  5. behavior php,behavior.php
  6. java 8 两个list_java集合框架综述
  7. 终端编译opengl程序编译运行_ubuntu – 通过SSH编写opengl代码,通过机器显示运行程序...
  8. NTA - ERP远程接入硬件解决方案
  9. watch取消配对怎么重新配对_一文看懂智慧LED灯杆屏怎么配对
  10. 自动化爬虫selenium之键盘操作
  11. VMWare共享文件夹的使用
  12. 基于Zynq的光流法软硬件协同实现
  13. WINRAR诊断信息:不可预料的压缩文件末端
  14. 计算机酷睿处理器排行,2018电脑英特尔处理器排名(cpu性能天梯图)
  15. c语言小鱼的游泳时间,信息学奥林匹克竞赛-小鱼的游泳时间
  16. linux的qt下wsadata,Qtcpserver仅在调试器下返回listen函数的未知错误
  17. VBA-EXCEL:控制WORD指定位置,插入图片并调整在大小,高低,环绕
  18. 【奔腾的骏马---Html+CSS实现(附源代码)】
  19. 免费可商用的矢量插图网站
  20. I am a lazy bone

热门文章

  1. 基因组变异检测概述(SNP、InDel、SV)
  2. 115道Java面试题及答案分享,java程序员赶紧收好
  3. 经方时方接轨之――茵陈蒿汤合甘露饮
  4. 荣誉勋章出现计算机中丢失,荣誉勋章战士无法运行的原因及解决方法
  5. 中国势力主导NGN建设 华为中兴ASB三足鼎立
  6. 巧用快捷键轻松设置Eexel单元格格式(转)
  7. 求极值函数-MATLAB
  8. 计算机绘画社团活动教案,电脑绘画社团活动策划书精选
  9. 【转】矩阵运算所满足的定律
  10. 数据安全建设中合规管理措施