树莓派CM4开启I2C与UART串口登录同时serial0映射到ttyS0 & 开启多串口

前言

最近用CM4的时候使用到了I2C以及多个UART的情况。
同时配置端口映射也存在部分问题。
这里集中记录一下。


1. 树莓派开启I2C与UART串口登录

输入指令sudo raspi-config
跳转到如下界面:
选择Interface Options这一栏,通过按键上下↑↓进行切换,Enter回车选择。
在这里插入图片描述

选择I2C选项,再选择Yes
这个就是开启了I2C的功能。

在这里插入图片描述
在这里插入图片描述

再以同样的方式选择Serial Port,选择yes。
这个选项是可以通过UART打印shell的信息,也就是串口登录。
在这里插入图片描述

还有其他的一些功能开启,可以自己探索一下。
最后通过左右选择<Back>,返回到初始界面,再选择<Finish>

这里有个坑点,如果开启了串口登录的话,那么我们要使用这个uart1,通过RX1脚接收的数据可能会出现异常。
因此,如果我们需要使用到这个串口1的引脚,需要把这个串口登录给关闭。

最后再重启即可。
登录后通过ls /dev可以看到效果图如下所示,显示i2c相关接口。
在这里插入图片描述
通过ls -l /dev可以看到这个串口映射为ttyS0
在这里插入图片描述


2. 开启多串口

对于串口的使用,可能不只用到一个,需要多个串口的时候,这时候就需要开启其他的串口了。
CM4默认只开启了UART0,刚才写到的UART串口登录其实就是开启了串口1。
在这里插入图片描述

扫描二维码关注公众号,回复: 17082391 查看本文章

在这里插入图片描述

但这里我们会发现uart0和uart1使用的是同一对引脚,如果想用uart1并且引脚默认配置为14,15脚,需按照上面的raspi-config里面进行开启。

树莓派 CM4 默认情况下将 GPIO14 和 GPIO15 引脚用于 UART0 串口,用于内置蓝牙和控制台通信。默认配置下,控制台 (console) 通过这个串口与树莓派进行通信,可以通过串口连接到树莓派,输出启动日志、命令行输出等。

开启多串口的方式只需要在/boot/config.txt里面添加dtoverlay=uartx,这里x就是串口对应的号。
比如我想要开启uart3,只需要在config.txt文件的最下面一行添加dtoverlay=uart3

在这里插入图片描述

配置完成后重启即可。


配置完成后通过ls /dev可以看到多了一个ttyAMA1
这里要注意一个点,虽然CM4默认开启uart0和uart1,它们分别对应ttyAMA0,和ttyS0。如果我们把所有的uart都开启,那么uart2对应ttyAMA1,uart3对应ttyAMA2,以此类推。

但是我们看到,这里我配置的是uart3,但是通过ls指令,看到的映射端口却是ttyAMA1。这就说明,ttyAMAx这个映射其实是依次分配的,也就是说,我开启了uart0和1,后面如果开启的不是uart2,是uart3,4,5等,这个ttyAMAx映射的就是下一个。而不是说ttyAMA1固定映射uart2。


总结:

这篇博客主要是平时使用过程中常遇到的一些配置相关问题,这里主要做个记录,防止遗忘。

猜你喜欢

转载自blog.csdn.net/Edwinwzy/article/details/132650860