树莓派串口知识点
树莓派4b的外设一共包含两个串口:硬件串口(/dev/ttyAMA0),mini串口(/dev/ttyS0)
硬件串口由硬件实现,有单独的波特率时钟源,性能高,可靠;而mini串口性能低,功能单一。
所以一般都使用硬件串口。
树莓派的串口又分为主串口与辅助串口。
主串口可以通过引脚实现通讯,而辅助串口不能使用GPIO引脚通讯且默认被分配给蓝牙端。
且默认情况下,mini串口不管将它定义为主串口还是辅助串口,都是禁用的。
mini串口 -> ttyS0;
硬件串口 -> ttyAMA0;
主串口 -> serial0;
辅助串口 -> serial1;
树莓派上引脚8(TX)和引脚10(RX)是作为主串口的收发端。
————————————————
---------------------------------------------------------------------
下面的不大好用
连接
连接USB-TTL
打开串口助手,波特率9600,其他默认
https://blog.csdn.net/weixin_47309562/article/details/119499346
树莓派端配置
树莓派一共是有两个端口可用的
/dev/ttyAMA0是硬件串口
/dev/ttyS0是mini串口
这里我们用AMA0 因为它比较稳定 但是它被蓝牙占用了 下面我们来配置一下
ls -l /dev
看一下输出,serial0 指向的是S0还是AMA0
一般情况下默认指向的是S0
更换成AMA0
sudo nano /boot/firmware/config.txt
在末尾加上以下一行,保存退出:
dtoverlay=pi3-miniuart-bt
sudo raspi-config
依次选择 Inerfacing Options 、serial 、No 、Yes 保存退出
sudo nano /boot/firmware/cmdline.txt
内容替换为,保存重启:
dwc_otg.lpm_enable=0 console=tty1 console=serial0,115200 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait
下面是源文件内容,存档一下
console=tty1 root=PARTUUID=0e97b5fd-02 rootfstype=ext4 fsck.repair=yes rootwait cfg80211.ieee80211_regdom=CN cfg80211.ieee80211_regdom=CN
..................到这儿...............
开机
ls -l /dev
我们发现serial已经指向ttyAMA0
到此树莓派配置完成
程序测试
sudo chmod 777 /dev/ttyAMA0
回车给下权限
要不等会儿会报错
python3
import serial#导入pyserial模块
ser = serial.Serial('/dev/ttyAMA0',9600)#创建serial对象 并且指定波特率为9600(与调试助手一致)
ser.isOpen()#返回Ture则代表串口已打开
ser.write('Hello CSDN !!'.encode('utf-8'))#向串口发送字符串并指定编码为utf-8
看看pc端的串口调试助手有没有接收到消息.,