minblack3 发表于 2022-4-26 13:17

树莓派zero 2w打开UART串口

整理自B站树小悉https://www.bilibili.com/video/BV16U4y1879Q?p=12
树莓派zero 2w有两个uart串口
一个是硬件串口(/dev/ttyAMA0),另一个是mini串口(/dev/ttyS0)
Mini UART没有时钟源,必须由内核提供时钟源,而内核频率本身是变化的,导致Mini UART速率不稳,无法正常使用。

树莓派串口:
      主串口------>可以通过引脚实现通讯
      辅助串口--------->不能使用GPIO引脚通信,默认被分配给蓝牙端
注意:默认情况下,迷你串口是禁用的,无论将它指定为主UART还是辅助UART

现在我们需要把硬件串口设置为主串口,并解除蓝牙功能对硬件串口的占用

在树莓派的官方描述中可以看到,mini串口的的代号为ttyS0,硬件串口的代号为ttyAMA0,主串口的标识符为serial0,辅助串口的标识符为serial1 :


1、在终端使用命令ls /dev -al 查看串口打开情况


我们可以看到并没有serial0,说明主串口没有打开;而且硬件串口ttyAMA0被分配到了serial1作为辅助串口
mini串口ttyS0并没有显示,因为mini串口在默认情况下是禁用/关闭的


所以接下来需要打开mini 串口ttyS0

2、打开mini UART

①点击左上角树莓图标
②点击首选项
③点击 Raspberry Pi Configuration 选项


在弹出的设置窗口中选择第三个lnterfaces按钮,将Serial Port设置为开启,Serial Console设置为关闭


点击ok保存设置,这时会提示是否重启树莓派,选择yes立即重启


重启完成后在来看一下串口的打开情况,打开终端输入ls /dev -al

现在可以看到mini串口ttyS0已经显示了,说明已经打开
但是硬件串口ttyAMA0依然是作为辅助串口serial1


所以接下来需要将硬件串口设置为主串口serial0


3、编辑config.txt文件,将硬件串口设置为主串口

打开终端输入命令sudo nano /boot/config.txt 编辑文件


在文件末尾加入两行代码
dtoverlay=pi3-miniuart-bt
force_tubo=1
将蓝牙分配到mini uart串口


编辑好后
Ctrl+s 保存文件
Ctrl+x 退出编辑

再次重启树莓派,设置完成。


4、查看设置完后的串口信息
上一步树莓派重启完成后,打开终端输入 ls /dev -al 再次查看串口信息



这时可以看到硬件串口ttyAMA0和mini串口ttyS0都已经显示出来,这代表两个串口都已经打开
并且硬件串口ttyAMA0分配到了serial0作为主串口,mini串口ttyS0分配到serial1作为辅助串口
说明我们的设置已经完成


接下来连接实物进行测试


5、实际编写测试串口是否能用

首先在树莓派引脚图的网站可以看到zero的GPIO14和GPIO15分别是UART串口的 TX和RX (参考 https://pinout.xyz/ ) 树莓派引脚详情


然后用一根 母-母 的杜邦线将GPIO14和GPIO15两个引脚相连接(自发自收,方便调试)


打开编程软件,这里用的是thonny,输入代码:
import serial

portx = '/dev/ttyAMA0'
bps = 9600    #波特率设置为9600

ser = serial.Serial(portx,baudrate=bps)
ser.write('Hello world\n'.encode('gbk'))    #将字符串转换为字节才能写入

data = ser.readline()
print(data.decode('gbk'))


可以看到输出的数据与写入的数据一致

hackerbob 发表于 2022-4-26 13:53

这方面没研究过

lantern5032 发表于 2022-4-26 13:55

感谢大佬分享,插眼支持下

雷欧库珀 发表于 2022-4-26 14:13

蓝牙和串口可以同时开嘛?

zxf3141592654 发表于 2022-4-26 14:53

最近一直在看树莓派    涨姿势了

yiwozhutou 发表于 2022-4-26 17:35

最强王者 树莓派我看老外 弄的 感觉好玩

minblack3 发表于 2022-4-27 00:01

雷欧库珀 发表于 2022-4-26 14:13
蓝牙和串口可以同时开嘛?

这就不太清楚了,我刚开始学习{:301_973:}
页: [1]
查看完整版本: 树莓派zero 2w打开UART串口