树莓派自带的GPIO串口输出及输出乱码问题解决方案

可以使用树莓派的UART0进行串口输出,具体连接方法如图所示:

连接后可以使用如下代码发送串口数据:

import serial
import time

# 串口初始化
ser = serial.Serial('/dev/serial0', 9600, timeout=1)  # '/dev/serial0' 是树莓派上默认的串口设备

# 发送数据
message = "Hello, world!"
ser.write(message.encode())  # 将字符串编码成字节并发送

# 关闭串口
ser.close()

注意需要用sudo权限运行python3来运行这个程序。

正常的话串口接收端即可看到数据,注意两端的串口参数要协商一致

可能问题1:树莓派没有/dev/serial0

解决方案:树莓派没有开启串口,在树莓派开始菜单的Preference->Raspberry Pi Configuration中的Interface中,打开(即Enable)Serial Port。

可能问题2:输出的是乱码

解决方案,首先看两端是否参数一致,例如波特率,停止位和校验位等参数,一般都是8N1。但是这些都设置完成后,也可能仍旧是乱码,我无论换什么软件都没有用。最后根据帖子https://codeleading.com/article/71131411362/ 里面的指示,把tf卡取出来后插到电脑上,修改根目录下的config.txt和cmdline.txt这两个文件:

1. 在config.txt文件中附加:

dtoverlay=pi3-miniuart-bt 

原有的dtoverlay参数删除

2. 把cmdline.txt中的内容换成

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

原内容全部删除。

重启后解决问题!如果打开了设置中的Serial Console,还可以在串口中连接树莓派的终端。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值