树莓派4B串口配置 |
您所在的位置:网站首页 › 树莓派3b性能 › 树莓派4B串口配置 |
树莓派环境
硬件:树莓派4B 系统:ubuntu22.04 串口信息树莓派4B一共有6个串口,之前的版本只有2个串口。这6个串口中,有5个时硬件串口,还有个mini串口,这5个硬件串口在我们需要使用外设时。但是,默认情况下,5个默认串口只有1个被启用了,剩下4个都是禁用的。我们要实现树莓派和外设通信,首先必须启用所有串口,接下来就介绍启用串口的方法: 1.打开终端,输入:dtoverlay -a | grep uart,查看树莓派的所有串口资源; 2.可以输入:dtoverlay -h 串口名。来查看特定串口的信息; 3.在终端输入:cd /boot/firmware可进入新的文件路径; 4.在上面路径下输入:sudo gedit config.txt打开txt文件; 5.在文件的末尾加上: dtoverlay = uart2 dtoverlay = uart3 dtoverlay = uart4 dtoverlay = uart5 如果没有enable_uart = 1这行代码,也要加上,并且如果有enable_uart = 0这行代码,需要注释掉;6.重启树莓派; 7.之后打开终端,输入:ls /dev/ttyAMA* 若出现以下一行内容,则说明配置成功: /dev/ttyAMA0 /dev/ttyAMA1 /dev/ttyAMA2 /dev/ttyAMA3 /dev/ttyAMA4 硬件串口(/dev/ttyAMA0)该串口由硬件实现,有单独的波特率时钟源,性能高、可靠。 GPIO14 = TXD0 -> ttyAMA0 GPIO0 = TXD2 -> ttyAMA1 GPIO4 = TXD3 -> ttyAMA2 GPIO8 = TXD4 -> ttyAMA3 GPIO12 = TXD5 -> ttyAMA4 GPIO15 = RXD0 -> ttyAMA0 GPIO1 = RXD2 -> ttyAMA1 GPIO5 = RXD3 -> ttyAMA2 GPIO9 = RXD4 -> ttyAMA3 GPIO13 = RXD5 -> ttyAMA4 mini串口(/dev/ttyS0)该串口性能低,功能也简单,并且没有波特率专用的时钟源,而是由CPU内核时钟提供。因此mini串口有个致命的弱点是:波特率受到内核时钟的影响。 也就是说,和CPU共用同一时钟,当CPU处理较多任务时,或者低功耗时,你的串口波特率不是稳定的,数据误传、传丢就会成为常态。 注意:树莓派(3/4代)板载蓝牙模块,默认的硬件串口是分配给蓝牙模块使用的,而性能较差的mini串口是分配给GPIO串口 TXD0、RXD0。 打开serial0 终端输入 ls -l /dev发现只有serial1->ttyAMA0,没有serial0的映射。 执行 sudo raspi-config如果没有安装raspi-config,按照这里安装 选择Interfacing Options 选择serial Port 再选择 否,禁用串口登录功能,将串口用于通信。 再选择 是,启动串口硬件。 然后执行以下步骤 cd /boot/firmware sudo gedit config.txt注意不是/boot下的config,而是/boot/firmware下的config 打开文件后,找到enable_uart=0这行,把这行用#注释掉。然后在这行下面加一行,enable_uart=1。 然后执行下面的指令 sudo gedit syscfg.txt将里面的enable_uart=0改成enable_uart=1 然后执行reboot重启 sudo reboot重启树莓派,再看ls -l /dev , serial0->ttyS0就出现了。 调换serial0和serial1的映射 初始是 执行以下指令 cd /boot/firmware sudo gedit config.txt在config.txt的结尾加上dtoverlay=disable-bt 然后在终端输入以下命令禁用掉和蓝牙有关的开机启动项 sudo systemctl disable bluetooth因为蓝⽛也使⽤硬件串⼝,所以我们在 /boot/config.txt⾥⾯加上 dtoverlay=disable-bt ,ttyAMA0 得以释放,这时候树莓派也⾃动交换了ttyAMA0和ttyS0,把serial0 分配给了 ttyAMA0 。 映射对换的⽬的是将硬件串⼝作⽤在GPIO接⼝的Tx Rx上。我这里没有⽤到蓝⽛通讯,所以禁⽤蓝⽛后也没有再次开启,也没有测试再次开启蓝⽛通讯是否正常,如果你们那里有⽤到蓝⽛通讯,那么进⾏这⼀步的时候要谨慎。 修改系统配置⽂件/boot/config.txt sudo vi /boot/config.txt 在⽂件中添加: dtoverlay=disable-bt这⾥有个坑要注意⼀下:树莓派3的参数值是pi3-disable-bt。在树莓派4B上⽤pi4-disable-bt,是不⾏的,有的人说在4B上依旧写pi3-disable-bt后成功了。具体我没有测试。我这里直接写dtoverlay=disable-bt是成功的。 重启树莓派,应该没有蓝牙标志了,serial0和serial1也调换为: 安装minicom sudo apt-get update sudo apt-get install minicom sudo minicom -D /dev/ttyAMA0 -b 115200其中-D表示选择串口**/dev/ttyAMA0**,-b 设置波特率为115200,此参数可以不用设置,默认115200。 但是提示报错permission denied: 这是因为权限不够不能打开,因此使用下面的命令提升权限 sudo chmod 777 /dev/ttyAMA0然后重新调用命令,不会报错: minicom -D /dev/ttyAMA0 -b 115200 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |