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

200dedb3563aae95fc5f711b13b9a6a7.gif

一、介绍

对于树莓派 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或者远程桌面连接树莓派后进行控制。

f5bf832b48040923a122190403a5d42d.png

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

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

542f6b963c5ddd2bd9aa1fc750fd11aa.png

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

四、实验步骤

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

树莓派(name)T型转接板(BCM)USB TO TTL模块
TXDTXORXD
RXDRXITXD
GNDGNDGND

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

c52173a5812b390ddb51ee36191b4f6d.png

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

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

a09dae3a70b772157399417640bf3502.png

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

1f0738bdccf63e70abce46b6defcbda5.png

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

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

6ea177431a400d0bc51b3f260ff4906f.png

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

63a4babe325dd98f58aa314084516638.png

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

1422661c5b2edd34c8d004bc4ce75752.png

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

482433aff00c0d5166df6783da3c5f26.png

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

8731fdc7f6c3c86124e18a7fe5c71213.png

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

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

f94ec7b658d54d9ebbaedf00ea0b619e.png

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

e39c5342829da27611589c4d3f9b0b95.png

(3)修改配置文件

sudo vim /boot/config.txt

在该文件中加一行代码

dtoverlay=pi3-miniuart-bt

141171dead25905ff234c29936dcf505.png

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

272365f4ca7e20005aaaf10491d86bfe.png

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

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

ad067bf4175ad98651a0bc1042888871.png

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

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

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

sudo vim /boot/config.txt

af47a5cadbab993e5af3370baac1857d.png

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

修改前:

5ed5df21b57c271146510ce1f3b307bf.png

修改后:

b0b6ceaf8ee29a191f6a4f3088cf96cb.png

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

树莓派3B/3B+

7ac700ecebc6c51b9c76276a5cf6844c.png

287b7f93f99c8eb3da01d01088ee2071.png

f3919c79c10404450fe2becd3799870a.png

心动购买

fa8c3b68c9b218856f36b60729b9887e.png

1bea5cb712e5d22eb062cfccbfd1693b.gif

精彩回顾

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

dc4a9f946735195790bcad5775b016a7.png

cd74aa4baf2f4479a30e446f8a5a1c1e.gif

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

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

相关文章

ichat在线客服jQuery插件(可能是历史上最灵活的)

ichat是一款开源免费在线客服jQuery插件,通过该插件,您可以自由的定制属于自己的在线客服代码。 ichat充分吸收传统在线客服插件的优点,并加上自身的独特设计,使得ichat可定制性异常强大。 ichat追求简单实用,走小清新…

第6章 Python 数字图像处理(DIP) - 彩色图像处理1 - RGB彩色模型,RGB to Gray,CMK和CMYK彩色模型,HSI彩色模型

第6章主要讲的是彩色图像处理,一些彩色模型如RGB,CMK,CMYK,HSI等色彩模型;彩色模型的变换关系;还包含由灰度图像怎样处理成假彩色图像;使用彩色分割图像等。本章比较少理论还有变换的描述&#…

git 命令详解_再次学习Git版本控制工具

微信公众号:PHP在线Git 究竟是怎样的一个系统呢?为什么在SVN作为版本控制工具已经非常流行的时候,还有Git这样一个版本控制工具呢?Git和SVN的区别在哪儿呢?Git优势又在哪呢?下面PHP程序员雷雪松带你一起详细…

spring-boot 定时任务

2019独角兽企业重金招聘Python工程师标准>>> 1、建立项目 SpringBootApplication EnableAsync EnableScheduling EnableAutoConfiguration(exclude{ DataSourceAutoConfiguration.class, DataSourceTransactionManagerAutoConfiguration.class}) ImportResource(…

使用Lightbox制作照片条

前言:这是国外的一个教程,我也很喜欢这个网页里面的教程,主要技术是CSS3和JQuery以及一些JQuery的插件的应用,当然从这些教程我也学到了他们制作时的一些思路,就好像做数学题那样,只要思路把握了&#xff0…

第6章 Python 数字图像处理(DIP) - 彩色图像处理2 - 灰度分层(灰度分割)和彩色编码,灰度值到彩色变换,Gray to RGB

第6章主要讲的是彩色图像处理,一些彩色模型如RGB,CMK,CMYK,HSI等色彩模型;彩色模型的变换关系;还包含由灰度图像怎样处理成假彩色图像;使用彩色分割图像等。本章比较少理论还有变换的描述&#…

值重新赋值_JavaScript-赋值运算符

好好学习,天天向上赋值运算符赋值运算符必须有变量参与运算,赋值运算符会做两件事情第一,将变量中原始值参与对应数学运算,与右侧的数据第二,将运算结果再重新赋值给变量变量位于操作符的左侧赋值运算符符号&#xff1…

超声换能器的原理及设计_超声波发生器、变幅杆、焊头的匹配介绍

一.超声波换能器原理与设计(超声波振动系统)匹配摘要:就塑料焊接机的超声波换能器系统进行设计和计算,并用PRO- E 三维软件绘出三维模型,最后进行频率分析,为超声波换能系统提供了有用的设计方法。关键词:超声波换能器…

位图法

判断集合中存在重复是常见编程任务之一,当集合中数据量比较大时我们通常希望少进行几次扫描,这时双重循环法就不可取了。位图法比较适合于这种情况,它的做法是按照集合中最大元素max创建一个长度为max1的新数组,然后再次扫描原数组…

CentOS查看和修改PATH环境变量的方法

为什么80%的码农都做不了架构师?>>> 查看PATH:echo $PATH 以添加mongodb server为列 修改方法一: export PATH/usr/local/mongodb/bin:$PATH //配置完后可以通过echo $PATH查看配置结果。 生效方法:立即生效 有效期限…

IOS简单的登陆界面

主要需要注意的几个问题: 1.导入图片方式最好用文件导入 代码: 在ViewController.m文件中 2.UILable常用属性 property(nonatomic,copy) NSString *text; //设置文本内容 property(nonatomic,retain) UIFont *font; //设置字体 …

第6章 Python 数字图像处理(DIP) - 彩色图像处理3 -色彩变换、彩色校正、彩色图像平滑和锐化、HSI彩色空间中的分割、RGB空间中的分割、彩色边缘检测

这里写目录标题色彩变换彩色图像平滑和锐化使用彩色分割图像HSI 彩色空间中的分割RGB空间中的分割彩色边缘检测彩色图像中的噪声色彩变换 # 图像颜色分量的显示 from PIL import Imageimg_ori Image.open(DIP_Figures/DIP3E_Original_Images_CH06/Fig0630(01)(strawberries_f…

javascript 在对象中使用 定时器_如何使用JavaScript 面向对象编程

学习目标理解面向对象开发思想掌握 JavaScript 面向对象开发相关模式面向对象介绍什么是对象Everything is object (一切皆对象)我们可以从两个层次来理解对象:(1) 对象是单个事物的抽象。一本书、一辆汽车、一个人都可以是对象,一个数据库、一张网页、一…

char数组转string_String类和其它数据类型的相互转换

对于上面的这些包装类,除了Character以外,都有可以直接使用字符串参数的构造函数,这也就使得我们将String类转换为这些数据类型变得相当之简单,即:Boolean(String s)、Integer(String s)、Long(String s)、Float(Strin…

python3循环一直到一个值结束_一步一步学Python3(小学生也适用) 第十七篇:循环语句for in循环...

一、Python for in循环Python for in 循环,是用来遍历任何数据序列,如一个列表,一个字符串,一个字典,一个元组等。for in 循环的一般语法如下:for item in 序列:语句块else:语句块for in 字符串&#xff1…

设置Jupyter notebook 默认工作路径,修改Jupyter notebook 默认浏览器为Chrome

这里写目录标题一 设置Jupyter notebook 默认工作路径二 修改Jupyter notebook 默认浏览器为Chrome一 设置Jupyter notebook 默认工作路径 安装好anaconda 后,jupyter notebook默认是有安装好的。在windows的菜单栏找到anaconda目录,如下图 鼠标右键点…

第10章 Python 数字图像处理(DIP) - 图像分割 基础知识 标准差分割法

This Chapter is all about image segmentation. I still not finished whole chapter, but here try to publish some for reference. 这里写目录标题基础知识import sys import numpy as np import cv2 import matplotlib import matplotlib.pyplot as plt import PIL from …

OFBiz的探索进阶

主要参照https://cwiki.apache.org/OFBIZ/ofbiz-tutorial-a-beginners-development-guide.html这个教程,实现的过程教程上很详细,故这里不多说 还参考了下http://www.hotwaxmedia.com/apache-ofbiz-blog/ofbiz/ofbiz-tutorials/ofbiz-tutorial-building-…

对GCD的一些理解和实践

对GCD的一些理解和实践GCD GCD,全程Grand Central Dispatch,是苹果为了多核并行提出的解决方案。它是使用C语言实现,但是由于用了block来处理回调,所以使用起来十分方便。并且GCD会自动管理线程的生命周期,不需要我们去…

[Buzz Today]2012.08.08

# Dark Reign 2 源代码现身Google Code Pandemic工作室开发的即时战略游戏《Dark Reign 2》源代码被泄露到了Google Code http://code.google.com/p/darkreign2/ # Warsow 1.0发布 Set in a futuristic cartoonish world, Warsow is a completely free fast-paced first-person…