树莓派4B如何使用串口与外部进行通信

树莓派4B如何使用串口与外部进行通信外设IO口定义说明从树莓派的相关资料我们可以看到,树莓派有两个串口可以使用,一个是硬件串口(/dev/ttyAMA0),另一个是mini串口(/dev/ttyS0)。硬件串口有单独的波特率时钟源,性能好,稳定性强;mini串口功能简单,稳定性较差,波特率由CPU内核时钟提供,受内核时钟影响。树莓派(3/4代)板载蓝牙模块,默认的硬件串口是分配给蓝牙模块使用的,而性能较差的mini串口是分配给G…

大家好,又见面了,我是你们的朋友全栈君。

外设IO口定义说明

从树莓派的相关资料我们可以看到,树莓派有两个串口可以使用,一个是硬件串口(/dev/ttyAMA0),另一个是mini串口(/dev/ttyS0)。硬件串口有单独的波特率时钟源,性能好,稳定性强;mini串口功能简单,稳定性较差,波特率由CPU内核时钟提供,受内核时钟影响。
树莓派(3/4代)板载蓝牙模块,默认的硬件串口是分配给蓝牙模块使用的,而性能较差的mini串口是分配给GPIO串口 TXD0、RXD0。
在这里插入图片描述

Serial 配置

首先运行ls /dev -al命令查看到默认的串口分配方式,如下图所示:
在这里插入图片描述
由于硬件串口分配给板载蓝牙使用,所以要释放掉,并设置硬件串口分配给GPIO串口。
首先登陆终端后,输入sudo raspi-config命令进入树莓派系统配置界面,选择第五个Interfacing Options:
在这里插入图片描述
进入P6 Serial
在这里插入图片描述
选择关闭串口登录功能,打开硬件串口调试功能:
在这里插入图片描述
在这里插入图片描述
完成后提示以下界面,按OK
在这里插入图片描述

设置硬件串口为GPIO串口

接着将串口配置为我们的GPIO串口,对输入sudo vim /boot/config.txt命令,将下面两行内容添加到最后:dtoverlay=pi3-miniuart-bt force_turbo=1
修改后保存并退出,内容如下图片所示:
在这里插入图片描述
重启树莓派后,再次输入ls /dev -al,可以看到两个串口已经互相换了位置:
在这里插入图片描述

minicom串口助手测试

首先输入sudo apt-get install minicom命令安装minicom,安装完成后,输入minicom -D /dev/ttyAMA0 -b 9600启动minicom,如图所示:
在这里插入图片描述
其中-D表示选择串口/dev/ttyAMA0,-b 设置波特率为9600,此参数可以不用设置,默认11520,并且退出minicom时需要先按Ctrl+A,再按Z,弹出以下菜单,0。
将树莓派与TTL对应接上,就可以通过PC串口助手与树莓派互相发送、接收数据,但是树莓派在发送数据时,命令终端并不会显示,如下图所示:
在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/134450.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 面向对象设计要遵循哪些原则_java面向对象的概念

    面向对象设计要遵循哪些原则_java面向对象的概念我们在应用程序开发中,一般要求尽量两做到可维护性和可复用性。应用程序的复用可以提高应用程序的开发效率和质量,节约开发成本,恰当的复用还可以改善系统的可维护性。而在面向对象的设计里面,可维护性复用都是以面向对象设计原则为基础的,这些设计原则首先都是复用的原则,遵循这些设计原则可以有效地提高系统的复用性,同时提高系统的可维护性。面向对象设计原则和设计模式也是对系统………

    2022年10月21日
  • error: failed to push some refs to ‘git@gitee.com:xxx/xxx.git’ 问题 解决办法

    error: failed to push some refs to ‘git@gitee.com:xxx/xxx.git’ 问题 解决办法原因分析:本地和远程的文件应该合并后才能上传本地的新文件解决办法:1.gitpullgiteemaster先拉下来,自动合并(类似于SVN的update)2.gitpushgit

    2022年7月2日
  • awk与sed:关于多行的样本

    awk与sed:关于多行的样本

    2022年1月1日
  • lock free 之 stack

    lock free 之 stack第二个例子(和第一个一样,没加注释,均是消费者需要判断生产者还在生产吗),在实际中,可以考虑使用这个模型,比起我前面写的数据队列来说,用boost::lockfree可以大大减轻工作,这也是今年要努力掌握boost的一个理由#include#include#include#includeboost::atomic_intproducer_count(0);boost::a

    2022年7月19日
  • axios的安装和使用

    axios的安装和使用文章目录一、axios介绍二、安装axios三、案例一、axios介绍什么是axios?Axios是一个基于promise的HTTP库,可以用在浏览器和node.js中。特性:1、从浏览器中创建XMLHttpRequests2、从node.js创建http请求3、支持PromiseAPI4、拦截请求和响应5、转换请求数据和响应数据6、取消请求7、自动转换JSON数据8、客户端支持防御XSRF浏览器支持:二、安装axios方法一:速.

    2022年10月22日
  • spark web ui中的skipped的含义

    spark web ui中的skipped的含义顾名思义,跳出的意思啦。例如如图:skipped的stages代表是已经执行过了。所以不需要再执行了。如何,你有一个testRdd。然后先做testRdd.Filter("xxx&quo

    2022年8月5日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号