树莓派3 串口使用 raspberry pi 3B+ uart boot overlay(最全树莓派串口使用)

今天要说说树莓派3的UART串口的使用问题,该串口问题的官方反馈及回复请参考这两篇官方博文http://www.briandorey.com/post/Raspberry-Pi-3-UART-Boot-Overlay-Part-Two
对于树莓派3 B+ 来说,他的uart 功能有三种: 1、内部蓝牙使用 2、控制终端使用 3、与其他设备进行串口通信;

然而 树莓派 3 确只提供一个硬件 uart,对应硬件接口 p14-TX/P15-RX。所有树莓派3 的串口只能是鱼与熊掌不能兼得了。

树莓派 官方系统 Raspbian Jessie releases 默认串口是给蓝牙使用。如果想让串口作为控制终端调试口即 serial console ,则需要对系统配置进行修改,关闭蓝牙并且映射 pl011 UART 到p14和p15

一、使能serial console步骤如下:

  • srep1:安装系统并配置系统
    Raspbian Jessie releases 系统安装到sd卡上(其他系统没有测试),相信看到该博文的你这一步肯定已经完成了。 配置系统: sudo raspi-config

    执行:Expand filesystem and enable serial on advanced page exit and reboot

   sudo apt-get update 
   sudo apt-get upgrade
   sudo reboot
  • step2: 修改配置

    编辑 /lib/systemd/system/hciuart.server 然后用 ttyS0 替换文件中的 ttyAMA0

  sudo  vi / /lib/systemd/system/hciuart.server
  替换文件中的 ttyAMA0  为 ttyS0
  • step3:设置 Device tree
  sudo vi /boot/config.txt
在文件末尾添加 : dtoverlay=pi3-miniuart-bt

保存->退出
  • step4:使能串口终端 serial console

    编辑 /boot/cmdline.txt 文件
    sudo vi /boot/cmdline.txt
    变文件内容为:

dwc_otg.lpm_enable=0 console=serial1,115200  console=tty1 root=/dev/mmcblk0p2  kgdboc=serial1,115200 rootfstype=ext4  elevator=deadline fsck.repair=yes   rootwait

保存上述文件并重启系统

sudo reboot

这个时候,你就可以用串口登录树莓派并控制输入输出了;pc端串口配置为: 115200 8n1(8位,没有校验位,1位停止位)

二、设置串口为通用串口与外部设备通信

如果你想把串口设置为通用串口,那就要关闭 serial console了。具体步骤如下:
在完成上面前3个step前提下,编辑 /boot/cmdline.txt 文件

sudo /boot/cmdline.txt 

修改文件中的内容为:

dwc_otg.lpm_enable=0  console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4  elevator=deadline fsck.repair=yes   rootwait

退出并保存文件。

sudo reboot

这个时候我们的串口就可以使用了,串口的设备号为 /dev/ttyAMA0

树莓派3上用户目前无法正常是使用GPIO中的UART串口(GPIO14&GPIO15;),也就是说用户无论是想用串口来调试树莓派,还是想用GPIO中的串口来连接GPS,蓝牙,XBEE等等串口外设目前都是有问题的。 原因是树莓派CPU内部有两个串口,一个是硬件串口(官方称为PL011 UART),一个是迷你串口(官方成为mini-uart)。在树莓派2B/B+这些老版树莓派上,官方设计时都是将“硬件串口”分配给GPIO中的UART(GPIO14&GPIO15;),因此可以独立调整串口的速率和模式。而树莓派3的设计上,官方在设计时将硬件串口分配给了新增的蓝牙模块上,而将一个没有时钟源,必须由内核提供时钟参考源的“迷你串口”分配给了GPIO的串口,这样以来由于内核的频率本身是变化的,就会导致“迷你串口”的速率不稳定,这样就出现了无法正常使用的情况。 目前解决方法就是,关闭蓝牙对硬件串口使用,将硬件串口重新恢复给GPIO的串口使用,也就意味着树莓派3的板载蓝牙和串口,现在成了鱼和熊掌,两者无法兼得。 按照一下方法回复恢复硬件串口 : 1、将此文件复制到/boot/overlays/ ~$ sudo cp pi3-miniuart-bt-overlay.dtb /boot/overlays 2、编辑/boot目录下的config.txt文件 ~$ sudo vim /boot/config.txt 3、添加或修改下面内容: dtoverlay=pi3-miniuart-bt-overlay force_turbo=1 4、关闭蓝牙服务 ~$ sudo systemctl disable hciuart 5、重启系统 ~$ sudo reboot
### Raspberry Pi CM4B 和 DSI 7 英寸显示屏的兼容性和信息 #### 硬件概述 Raspberry Pi Compute Module 4 (CM4) 是一款专为嵌入式应用设计的强大模块,提供了多种配置选项。其中,带有 eMMC 存储和无线功能的版本称为 CM4B[^1]。 #### 显示屏连接方式 Compute Module 4 支持通过两种主要接口来驱动显示器:DSI(Display Serial Interface)和 HDMI。对于专用显示设备,尤其是触摸屏,通常推荐使用 DSI 接口以获得更好的性能和支持更多的特性。 #### 官方7英寸触控屏的支持情况 官方推出的 Raspberry Pi 7 寸触控液晶显示屏可以通过 DSI 连接到 CM4 上。这款屏幕具有分辨率为 800x480 的 TFT LCD 面板,并集成了电阻式触摸传感器。为了使该屏幕正常工作,在启动过程中需要加载特定的设备树覆盖层(Device Tree Overlay),这可以在 `config.txt` 文件中设置相应的参数实现。 ```bash dtoverlay=pi3-miniuart-bt # 如果启用了蓝牙,则可能需要此行调整串口分配 hdmi_force_hotplug=1 # 强制HDMI热插拔检测(如果适用) display_default_lcd=1 # 默认启用LCD面板 lcd_rotate=2 # 屏幕旋转角度可选值有0,1,2,3分别代表无旋转、90度顺时针转、180度翻转以及逆时针90度转动 ``` #### 设备树配置 为了让硬件能够识别并正确初始化外接的 DSI 显示器,还需要适当修改 `/boot/config.txt` 中有关于帧缓冲区大小和其他图形属性的相关条目。此外,确保使用的固件是最新的也很重要,因为新发布的固件可能会修复一些已知的问题并且增加对更多外围设备的支持。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值