树莓派串口知识点

树莓派4b的外设一共包含两个串口:硬件串口(/dev/ttyAMA0),mini串口(/dev/ttyS0)

硬件串口由硬件实现,有单独的波特率时钟源,性能高,可靠;而mini串口性能低,功能单一。

所以一般都使用硬件串口。

树莓派的串口又分为主串口与辅助串口。

主串口可以通过引脚实现通讯,而辅助串口不能使用GPIO引脚通讯且默认被分配给蓝牙端。

且默认情况下,mini串口不管将它定义为主串口还是辅助串口,都是禁用的。

mini串口 -> ttyS0;

硬件串口 -> ttyAMA0;

主串口 -> serial0;

辅助串口 -> serial1;

树莓派上引脚8(TX)和引脚10(RX)是作为主串口的收发端。

————————————————

https://blog.csdn.net/qq_38431572/article/details/86488688

https://blog.csdn.net/m0_51755720/article/details/132789900

---------------------------------------------------------------------

下面的不大好用

连接

连接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端的串口调试助手有没有接收到消息.,