网上一堆有关树莓派串口通信的文档,但真正有用的没几个,而且大部分都特别麻烦,我被这些文档误导了一天,但还是没办法实现串口通信。这里我给大家介绍一个非常简单的方案
- 首先确认波特率设置正确,是否为115200。(当然,其他波特率也可以的,不过代码得改一下
- 向microSD卡中烧录树莓派官方的镜像后,先不要急着把它插入树莓派中。
- 在电脑上打开microSD卡,按如下方式修改config.txt和cmdline.txt这两个文件,
在config.txt文件中附加
dtoverlay=pi3-miniuart-bt
在电脑里直接打开比在树莓派里打开要好操作,不用获取权限
然后把cmdline.txt中的内容换成
dwc_otg.lpm_enable=0 console=tty1 console=serial0,115200 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait
修改完成之后,我们打开树莓派
4. 串口连接可以参考下图
- 进入到树莓派的命令行当中进行如下操作
在命令行中输入如下命令
sudo chmod 777 /dev/ttyAMA0
这里要先获取权限,否则后面代码会报错
6. 接着进入python3中,输入如下代码,这里一定一定要注意,不要安装serial库!!!因为这个是安装好的,再安装会提示serial中无Serial!
>>> import serial
>>> ser = serial.Serial('/dev/ttyAMA0',115200)
检验串口是否打开,若未打开则输入 ser.open() 打开
>>> ser.isOpen()
True
接着我们打开串口,设置波特率,再发送串口信息
>>> ser.write(b'Raspberry pi')
12
这里我们可以看到数据接收成功了!
- 不过每次打开都要获取权限,这个比较麻烦,大家可以参照一下这篇文章进行配置,亲测有效,ttyAMA0权限获取。