- 前言
- 一、启动串口
- 二、禁用蓝牙(硬件串口与mini串口默认映射对换)
- 三、查找是否有serial的包
- 四、CH340分别连接树莓派与电脑
- 五、python串口通信程序
- 六、C语言通信程序
- 总结
前言
树莓派3/4b的外设一共包含两个串口,一个称之为硬件串口(/dev/ttyAMA0),一个称之为mini串口(/dev/ttyS0)。硬件串口由硬件实现,有单独的波特率时钟源,性能高、可靠,mini串口性能低,功能也简单,并且没有波特率专用的时钟源而是由CPU内核时钟提供。在树莓派4代中,由于板载蓝牙模块,因此这个硬件串口被默认分配给与蓝牙模块通信了,而把那个mini串口默认分配给了排针引出的GPIO Tx Rx。
提示:以下是本篇文章正文内容,下面案例可供参考
一、启动串口在命令行中输入以下内容:
ls -l /dev
在没有配置过正常情况下看到的应该是:
serial1 -> ttyAMA0
此时,在终端输入:
sudo nano /boot/config.txt
在打开的文件最后面添加:
#ENABLE UART enable_uart=1
保存退出后,重启树莓派;
reboot
在终端输入:
sudo raspi-config
根据以下步骤进行设置:
选择 Interfacing Options ->Serial ->no -> yes 关闭串口调试功能,打开串口
选择Interfacing Options
选择serial
再选择 no,禁用串口登录功能,将串口用于通信。
再选择 yes,启动串口硬件。
在命令行中输入以下内容:
ls -l /dev
在设置中启用串口后,会发现 /dev目录下变成了两个:
serial0 -> ttyS0 和 serial1 ->ttyAMA0二、禁用蓝牙(硬件串口与mini串口默认映射对换)
在终端输入:
sudo nano /boot/config.txt
在打开的文件最后面添加:
(注意:树莓派4b也一样是pi3,但不知具体原因是啥)
dtoverlay=pi3-disable-bt
修改保存后重启树莓派:
reboot三、查找是否有serial的包
在终端输入:
pip list
查找是否有serial的包,若没有,则在终端输入:
pip install serial四、CH340分别连接树莓派与电脑
- CH340的USB口端连接电脑USB口
- CH340的5P插针分别与树莓派串口引脚相连
- VCC <——> VCC、RXD <——> TXD、TXD <——> RXD、GND <——> GND
# -*- coding: utf-8 -*
import serial
import time
# 打开串口,配置波特率为9600,电脑端接收数据波特率也应相同
ser = serial.Serial("/dev/ttyAMA0", 9600)
def main():
while True:
# 获得接收缓冲区字符
count = ser.inWaiting()
if count != 0:
# 树莓派读取电脑端发送数据,并将此数据重新发送至电脑端
recv = ser.read(count)
ser.write(recv)
# 清空接收缓冲区
ser.flushInput()
# 必要的软件延时
time.sleep(0.1)
if __name__ == '__main__':
try:
main()
except KeyboardInterrupt:
if ser != None:
ser.close()
六、C语言通信程序
//使用ch340实现树莓派和电脑端的通信,文件名“uartex.c” #include总结#include #include int main(void) { int fd,n; char a; if((fd = serialOpen("/dev/ttyAMA0",115200))<0)//若无法通信,可检查更改串口波特率 { printf("serial ERROR!!!n"); } printf("This is just for test================== BY WANn"); serialPuts(fd,"START NOW====>"); while(1) { printf("Please input:n"); //键盘输入想要发送的数据,并发送 scanf("%c",&a); if(a>0) { serialPutchar(fd,a); } //检测对端是否有数据发来,若有则打印出来 while(n=serialDataAvail(fd)>0)//检测兑端是否有数据 { printf("====返回的数据为===>%cn",serialGetchar(fd));//若有返回数据,则打印输出 } } return 0; }
通过CH340连接树莓派与电脑,在树莓派中运行Python或C语言程序,在电脑端打开串口助手即可验证是否通信成功。



