一、介绍

对于树莓派 3B+来说,他的UART功能有三种:1、内部蓝牙使用;2、控制终端使用;3、与其他设备进行串口通信。

在树莓派USB TO TTL模块实验中学习了通过串口对树莓派进行控制台控制,让串口作为控制终端调试口即 serial console,但是在项目中常常会使用串口同其他传感器、单片机等设备进行通用串口通信。

本实验中设置树莓派的串口为通用串口与PC电脑的串口调试工具进行通信。

二、组件

★Raspberry Pi 3 B+主板*1 快速购买

★树莓派电源*1

★USB TO TTL模块*1

★面包板*1(可选)

★40P软排线*1

★跳线若干

三、实验原理

(一)树莓派的串口

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

硬件串口由硬件实现,有单独的波特率时钟源,性能高、可靠,mini串口性能低,功能也简单,并且没有波特率专用的时钟源而是由CPU内核时钟提供,因此mini串口有个致命的弱点是:波特率受到内核时钟的影响。内核若在智能调整功耗降低主频时,相应的这个mini串口的波特率便受到牵连了,虽然你可以固定内核的时钟频率,但这显然不符合低碳、节能的口号。

在所有的树莓派板卡中都通过排针将一个串口引出来了,目前除了树莓派3代以外  ,引出的串口默认是CPU的那个硬件串口。而在树莓派3代中,由于板载蓝牙模块,因此这个硬件串口被默认分配给与蓝牙模块通信了,而把那个mini串口默认分配给了排针引出的GPIO  Tx Rx。

树莓派的串口默认为串口终端调试使用,如要正常使用串口则需要修改树莓派设置。关闭串口终端调试功能后则不能再通过串口登陆访问树莓派,只能通过ssh或者远程桌面连接树莓派后进行控制。

上图红框中就是引出的串口IO(GPIO  14/15),如果我们需要通过UART外接模块,默认情况下必须得使用性能很低的mini串口了,而且随着内核主频的变化,还会造成波特率的变化导致通信的失败,几乎很难使用。所以我们一般要恢复硬件串口(/dev/ttyAMA0)与GPIO  14/15的映射关系,使得我们能够通过GPIO使用高性能的硬件串口来连接我们的串口设备。

恢复映射关系前先看下默认的映射关系:

serial0是GPIO引脚对应的串口,serial1是蓝牙对应的串口。如图所示,serial0(GPIO串口)默认使用的是ttyS0(mini串口),serial1(蓝牙)使用的是ttyAMA0(硬件串口)。

四、实验步骤

第1步:连接电路。使用USB TO TTL模块连接好树莓派的串口和PC电脑的USB接口。

树莓派(name) T型转接板(BCM) USB TO TTL模块
TXD TXO RXD
RXD RXI TXD
GND GND GND

下图中的USB要插到笔记本电脑上哈,为方便拍照就没插上。连线很简单,电路图就没画了。

第2步:首先我们先尝试使用默认的ttyS0(mini串口)来进行通用串口通信。

(1)设置树莓派,在Raspberry Pi Configuration中将Serial Port设置为Enable,但是Serial Console都要Disable,即关闭串口控制台功能,然后必须重启树莓派生效。

(2)PC电脑上运行串口调试工具,串口驱动的安装请参考树莓派基础实验35:USB TO TTL模块实验中的内容。如下图设置好参数,点击“打开串口”。

(3)树莓派上安装minicom,启动时配置参数串口为/dev/ttyS0,波特率(9600)。在树莓派上输入信息,在PC上的串口调试工具就会收到该信息。

sudo apt-get install minicom      #安装minicomsudo minicom -D /dev/ttyS0 -b9600   #启动minicom

(4)PC上的串口调试工具发送字符信息,树莓派上也会显示该信息,证明两者的UART双向通信成功。

(5)这里要注意的是:进入minicom工具,按提示按CTAL -A,然后按Z后会显示帮助信息。若再按O可以进入Minicom配置界面。

进入Minicom配置界面,再选择Serial port setup,可以对树莓派的串口进行设置。

进入串口设置,可以设置树莓派串口的设备、波特率等:

第3步: 为了在树莓派3中通过GPIO使用高性能的硬件串口,我们必须将分配给蓝牙使用的硬件串口与分配给IO排针的mini串口进行对换,这必然会使得蓝牙模块的功能受到影响,不过这里我们不使用蓝牙。

(1)在/boot/overlays文件内有两个文件,README 和pi3-miniuart-bt.dtbo,首先查看有没有相关文件。

(2)README文件中说明了此文件的功能,是将树莓派3的蓝牙切换到mini串口(ttyS0),并且恢复硬件串口(ttyAMA0)到GPIO14&15引脚中。

(3)修改配置文件

sudo vim /boot/config.txt

在该文件中加一行代码

dtoverlay=pi3-miniuart-bt

保存后重启树莓派,再查看映射关系已经改变:

(4)进入minicom,发送信息给PC串口调试工具。与第2步不同的是:启动时配置参数串口必须为/dev/ttyAMA0,波特率可以更改为其它的,这里设置为115200。

pi@raspberrypi:~ $ sudo minicom -D /dev/ttyAMA0 -b115200

经过测试,双向通信成功!这里要注意,第2步里面关闭串口控制台功能的设置不能变,即Serial Console要Disable。

补充: 前面步骤当中的部分设置使用的是图形界面配置,在不能使用图形界面时,也可以直接修改配置文件。

(1)上面串口的开启的步骤中,是在Raspberry Pi Configuration 界面中,将Serial Port选项ENable,也可以直接修改/boot/config.txt文件。

sudo vim /boot/config.txt

enable_uart=1即为Serial Port Enable串口开启,enable_uart=0即为Serial Port Disable串口关闭。

(2)上面关闭串口控制台功能,是在Raspberry Pi Configuration 界面中,将Serial Console选项Disable,可以直接修改/boot/cmdline.txt文件。

sudo vim /boot/cmdline.txt

修改前:

修改后:

去掉了“console=serial0,115200”,即Disable了串口控制台功能。

树莓派3B/3B+

心动购买

精彩回顾

点击文字即可阅读全文☞【教程】树莓派上安装Domoticz,控制家中各种设备☞额温枪实战方案开发板,使用手册+全套资料☞ ROS机器人操作系统如何安装使用?快来了解!☞ 技能get√丨用树莓派4制作交通标志识别机器人☞ 【教程】教你用Arduino制作PM2.5测量仪(使用GP2Y1010AU0F灰尘传感器)☞  技能get√丨用树莓派打造家庭自动化☞  【教程】不说废话!教你在树莓派上安装OpenCV☞ 【K210火炎焱燚】K210产品大集合必须火火火火火火~

android 串口调试工具_树莓派通用串口通信实验相关推荐

  1. python树莓派串口通信实例_树莓派通过串口发送数据

    可以通过串口登陆树莓派,也可以通过串口向其他主机发送数据.树莓派的串口接受数据科技爱好者博客已经写过,可以参考这篇文章:树莓派与arduino串口通信实践.这篇文章教大家如果通过树莓派的串口发送数据. ...

  2. c语言接收串口数据信息,C51通用串口收发数据C语言程序

    #include //C51通用串口收发数据C语言程序模块 #define  uchar unsigned char #define uint unsigned int uchar shu; bit ...

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

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

  4. simulink接收串口数据_基于Unity串口通信的解决方案

    思路有三种,等下我会详细介绍. 后面的博客详细介绍是我收录两年前写的博客,现在我已经没有往串口方向进行开发了,所以只能将一些思路分享给大家. ​ ​ 解决方式一:将Unity串口通信数据模块(接收与发 ...

  5. modbus串口调试工具_用modscan测试modbus协议离散仪表数据方法

    本文主要介绍离散仪表数据采集方法,涉及的离散仪表有电能表(97规约和07规约).皮带秤计量表.水表流量计等.其中电表数据采集较为简单,知道电表的规约,就知道了电表的波特率(这里97规约的电表波特率为1 ...

  6. 串口 接收端_嵌入式系统串口传输int float型数据的处理

    在做嵌入式系统通信时往往会用到串口,包括嵌入式系统将数据传输给PC,或者是嵌入式系统之间进行数据传输,这时候就会遇到发送数据的问题. 我们知道单片机通过串口发送数据时往往是一次一个字节(8位),如果传 ...

  7. rs232串口驱动_电脑主板RS232串口硬件设计

    更多硬件设计培训视频, 欢迎加入微信公众号"陈苍硬件设计" RS232属于一种电平标准,采用UART异步通信串行数据总线协议.工业电平标准RS422和RS485同样采用UART协议 ...

  8. ch340串口驱动_如何使用串口来给STM32下载程序

    前言 第一次学习STM32的时候,不知道有调试器这个东西,所以一直是通过串口来给STM32下载程序,下载速度也还算可以,一般是几秒钟完成.后来用了调试器,可以直接在Keil环境下进行下载,而且还可以进 ...

  9. android java 调试工具_调试应用  |  Android 开发者  |  Android Developers

    Auto 如果您希望 Android Studio 自动为您要调试的代码选择最合适的选项,请选择此调试类型.例如,如果您的项目包含任何 C 或 C++ 代码,Android Studio 会自动使用 ...

最新文章

  1. Java遍历对象所有属性
  2. 在IDEA 中用maven创建web项目
  3. 消除 Xcode7 中 directory not found for option 'xxxx' 警告
  4. 鸟哥的Linux私房菜基础学习篇(第二版)第二章课后习题与答案
  5. ugui unity 图片缩放循环_Unity基础系列(四)——构造分形(递归的实现细节)...
  6. python入门(5)使用文件编辑器编写代码并保存执行
  7. C语言中.h文件和.c文件如何理解?看完详细解析,小白也能懂!
  8. 乐高解魔方机器人编程百度网盘_砍人快乐 喜剧 / 惊悚 / 恐怖 网盘资源目录搭建...
  9. 《你好李焕英》票房反超《唐探3》 成中国影史票房第五
  10. 二进制文本编辑器_Textadept for mac(文本编辑) v10.5免费版
  11. matlab中firrcos,DMR数字集群关键技术的应用研究
  12. 计算机指法游戏警察抓小偷,警察抓小偷打字游戏游戏
  13. 齐杰文学CMS - 关关采集器2021可用19条采集规则
  14. 东北大学《材料现代研究方法》复习题及答案
  15. 用vs code 搭建stm32 开发环境(详细)
  16. 李嘉诚:孤独是他的能量
  17. Golang + HTML5 实现多文件上传
  18. [前端三剑客之CSS]display:none opacity:0 visibility:hidden三角恋的爱恨情仇
  19. 谷歌浏览器chrome 自己写的插件使用教程
  20. 查看文章 mysql:表注释和字段注释

热门文章

  1. BZOJ 5249: [2018多省省队联测]IIIDX(贪心 + 线段树)
  2. Dalsa线扫相机SDK开发-小试牛刀(1)
  3. mysql慢日志管理
  4. java数据结构系列——排列(2):有序阵列
  5. LeetCode Permutations
  6. .NET重构(四):窗体继承+模板方法,完美实现组合查询
  7. C# 判断给定大数是否为质数,目标以快速度得到正确的计算结果。
  8. 从服务器上自动更新系统补丁
  9. 2018年最好用的20个Bootstrap网站模板
  10. 记录自己的nest学习之旅