一、前言
在写这篇博客之前,网上已经有很多关于树莓派和PC机通信的博客教程,因此这篇博客从技术上讲也算不上原创,只不过是结合自己的使用情况做一个总结,便于以后快速解决同样的问题。
二、过程目录
1.硬件连接
2.恢复硬件串口配置方法
3.编写串口测试代码
4.使用串口调试助手完成测试
三、具体过程
硬件资源:树莓派3、PC机、USB转TTL模块
(一)硬件连接
将树莓派的GPIO14(TX)和GPIO15(RX)引脚分别和USB转TTL模块上的PB11(RX)和PB10(TX)引脚(原因见下图)进行连接,并用USB线连接PC机和USB转TTL模块。下面第一张图为树莓派3的GPIO引脚图,第二张图为USB转TTL模块图。
在USB转TTL模块中,右边有8个引脚,左边4个和右边4个是完全相同的,只不过为了模块化设计,将这个模块和主控芯片引脚断开,必要时只需要用跳线帽进行连接即可。红色跳线帽共地,蓝色跳线帽共5V,和树莓派GPIO口连接的杜邦线需要连接PB10和PB11对应的左边的引脚。
(二)恢复硬件串口的配置方法
1.下载pi3-miniuart-bt-overlay文件,然后在Terminal终端进入文件存放目录,执行以下命令将文件解压到目录 /boot/overlays/ 下。
sudo unzip pi3-miniuart-bt-overlay.zip -d /boot/overlays/
2.使用以下命令编辑 /boot 目录下的config.txt文件
sudo nano /boot/config.txt
config.txt文件初始状态如下:
在文本末尾加上如下一行代码:
dtoverlay=pi3-miniuart-bt
按下Ctrl+O组合键,再按下Enter键进行保存操作,最后按下Ctr+X组合键返回终端窗口。
3.输入以下命令编辑 /boot 目录下的cmdline.txt文件
sudo nano /boot/cmdline.txt
删除 console=serial1,115200
删除前可先进行备份,按下Ctrl+6开始标记,按下方向键可以标记多个,被标记的内容会反白,再次按下Alt+6完成复制,按下Ctrl+U完成粘贴操作;在一行代码前添加 # 符号可以注释掉该行代码。效果如下:
保存后返回到终端窗口初始界面。
4.更新配置并重启
依次输入以下命令进行配置更新:
sudo apt-get update
sudo apt-get upgrade
sudo reboot
5.查看修改后的映射关系
输入以下命令查看当前映射关系:
ls -l /dev
修改后的映射关系如图:
6.在树莓派命令窗口中分别通过如下两个命令停止和禁用串口的控制台功能
sudo systemctl stop serial-getty@ttyAMA0.service
sudo systemctl disable serial-getty@ttyAMA0.service
7.重启树莓派
sudo reboot
(三)串口测试代码
使用Python语言在Python图形化界面软件Geany中编写以下代码(一个回显程序),并保存为Uart_test.py。
# -*- coding: utf-8 -*
import serial
import time
#open the serial
ser = serial.Serial("/dev/ttyAMA0",115200)
def main():
while True:
#get Buffered character
count = ser.inWaiting();
if count !=0:
#read content and show return
recv = ser.read(count)
ser.write(recv)
#clear Buffer
ser.flushInput()
time.sleep(0.1)
if __name__ == '__main__':
try:
main()
except KeyboardInterrupt:
if ser != None:
ser.close()
在终端窗口进入程序保存目录,输入以下命令执行测试程序。
python Uart_test.py
(四)使用串口调试助手完成测试
在PC端打开串口调试助手,在能搜索到串口的前提条件下,将波特率调整为115200,打开串口,发送数据,观察接收窗口是否可以接收到发送的数据。
参考博客:
转载自原文链接, 如需删除请联系管理员。
原文链接:树莓派3与PC机通信,转载请注明来源!