• 树莓派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的信息,也就是串口登录。
    在这里插入图片描述

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

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

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


    2. 开启多串口

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

    在这里插入图片描述

    但这里我们会发现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。


    总结:

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

  • 相关阅读:
    OSG笔记:对线求交失败
    【数据结构】链表的学习总结
    自己整理的前端开发面试题
    25李沐动手学深度学习v2/填充和步幅
    【解决方案】智慧体育场馆大场景安防视频监控,可持续性保障大型场馆安全运行
    法国心理健康平台【Teale】完成1000万欧元A轮融资
    MFA-Conformer
    c#反射(Reflection)
    服务器数据恢复-某银行服务器硬盘数据恢复案例
    【深度学习 | 计算机视觉】Focal Loss原理及其实践(含源代码)
  • 原文地址:https://blog.csdn.net/Edwinwzy/article/details/132650860