树莓派3B 串口配置教程
来源:互联网 发布:陕西软件考试网 编辑:程序博客网 时间:2024/05/17 07:25
- 前言
- 修改配置
- 串口测试
1.前言
树莓派CPU内部有两个串口,一个是硬件串口(官方称为PL011 UART),一个是迷你串口(官方成为mini-uart)。在树莓派2B/B+这些老版树莓派上,官方设计时都是将“硬件串口”分配给GPIO中的UART(GPIO14&GPIO15),因此可以独立调整串口的速率和模式。而树莓派3的设计上,官方在设计时将硬件串口分配给了新增的蓝牙模块上,而将一个没有时钟源,必须由内核提供时钟参考源的“迷你串口”分配给了GPIO的串口,这样以来由于内核的频率本身是变化的,就会导致“迷你串口”的速率不稳定,这样就出现了无法正常使用的情况。
目前解决方法就是,关闭蓝牙对硬件串口的使用,将硬件串口重新恢复给GPIO的串口使用,也就意味着树莓派3的板载蓝牙和串口,只能二选一使用。
树莓派GPIO中串口的管脚在p6、p8和p10:
2.修改配置
1).下载 pi3-miniuart-bt-overlay 文件,解压出pi3-miniuart-bt-overlay.dtb文件,并将dtb文件拷贝到/boot/overlays/目录下。编辑/boot目录下的config.txt文件
sudo vim /boot/config.txt
添加:
dtoverlay=pi3-miniuart-bt-overlayforce_turbo=1 #此行貌似不是必须??
通过 ls -l /dev 命令查看修改后的映射关系:
对比修改前的关系,可以看出serial0和serial1 与 ttyAMA0和ttyS0的映射关系对换完成了,也就是ttyAMA0映射到了引出的GPIO Tx Rx上。
2).关闭板载蓝牙的:
sudo systemctl disable hciuartsudo vim /lib/systemd/system/hciuart.service
将 “ttyAMA0”修改为“ttyS0”:
3).修改cmdline.txt
sudo vim /boot/cmdline.txt
删除以下部分
console=ttyAMA0,115200 kgdboc=ttyAMA0,115200
最终变为
dwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait
4).禁用串口的控制台功能
前面的步骤已经交换了硬件串口与mini串口的映射关系,但现在想使用树莓派外接串口模块进行通信还不行,因为树莓派IO引出的串口默认是用来做控制台使用的,它的初衷是为了在没有网络接口时,通过串口对树莓派进行相关的配置。因此需要禁用这个默认功能,使得串口为我们自由使用。
在树莓派命令窗口中分别通过如下两个命令停止和禁用串口的控制台功能
sudo systemctl stop serial-getty@ttyAMA0.servicesudo systemctl disable serial-getty@ttyAMA0.service
5).重新启动树莓派,使修改生效。
sudo reboot
3.串口测试
查看串口配置:
stty -a -F /dev/ttyTHS2
设置临时波特率:
stty -F /dev/ttyTHS2 115200
发送字符串:
echo hello > /dev/ttyAMA0
参考文献:
树莓派相关-树莓派串口配置方法
浅尝树莓派3之串口配置
树莓派串口(UART)编程Python示例
树莓派3串口(UART)使用问题的解决方法
- 树莓派3B 串口配置教程
- 树莓派3B 使用串口配置
- 树莓派3B 修改默认串口配置
- 树莓派3B开启串口输出
- 树莓派3b:TTL串口登录问题
- 树莓派3B 使用kermit串口助手
- 树莓派3B Wiring Pi 串口操作
- 树莓派3B使用教程
- 树莓派3B的串口设置与简单调试
- 树莓派3 B+ 的串口(USART)使用问题
- 树莓派3 串口使用 raspberry pi 3B+ uart boot overlay(最全树莓派串口使用)
- 树莓派3 串口使用 raspberry pi 3B+ uart boot overlay(最全树莓派串口使用)
- 浅尝树莓派3之串口配置
- 树莓派串口配置
- 树莓派串口配置
- 树莓派的串口配置
- 树莓派串口配置
- 树莓派笔记--串口配置
- Python中list,tuple,dict,set的区别和用法
- 日期帮助类
- JavaScript(5)__Js基础<函数>
- OncePerRequestFilter dispatcherType
- win7文件共享设置
- 树莓派3B 串口配置教程
- 求二叉树的先序遍历
- Windows环境下Python中wordcloud的使用——自己踩过的坑 2017.08.08
- 剑指offer--第一个只出现一次的字符
- windows列出所有进程示例
- idea 里maven项目自动加载jar包
- 设计模式---unity中的单例模式
- 线程同步工具之CountDownLatch示例
- 高性能MySQL——Count(1) OR Count(*)?