1、串口通信原理
串口通讯(Serial Communication),是指外设和计算机间,通过数据信号线、地线等,按位进行传输数据的一种通讯方式。串口是一种接口标准,它规定了接口的电气标准,没有规定接口插件电缆以及使用的协议。串口按电气标准及协议来划分,包括RS-232-C、RS-422、RS485等。
一个字符一个字符地传输,每个字符一位一位地传输,并且传输一个字符时,总是以“起始位”开始,以“停止位”结束,字符之间没有固定的时间间隔要求。每一个字符的前面都有一位起始位(低电平),字符本身由7位数据位组成,接着字符后面是一位校验位(检验位可以是奇校验、偶校验或无校验位),最后是一位或一位半或二位停止位,停止位后面是不定长的空闲位,停止位和空闲位都规定为高电平。实际传输时每一位的信号宽度与波特率有关,波特率越高,宽度越小,在进行传输之前,双方一定要使用同一个波特率设置。
2、树莓派串口通信接口
树莓派的串口为UART,即通用异步收发传输器(Universal Asynchronous Receiver/Transmitter),或叫UART(串口)控制器。使用UART控制器进行数据传输的就叫做串口通信,是一种通用全双工串行、异步通信方式。常用与嵌入式系统中的主机与辅助设备之间通信。异步表示发送器与接收器的时钟不同步。UART通信有3条线:发送线TX、接收线RX、电平参考地线GND。
接线的方法就是 :
-
VDD接树莓派的5V电源
-
GND接树莓派的ground
-
TXD接树莓派的RXD
-
RXD接树莓派的TXD
3、进行串口通信的步骤
硬件连接:使用一根合适的串口线将串口设备连接到树莓派的GPIO引脚,具体来说是将串口的TX(发送)引脚连接到树莓派的RXD引脚,将串口的RX(接收)引脚连接到树莓派的TXD引脚。请确保正确连接。
禁用串口终端:在Raspbian Stretch中,默认情况下,树莓派的串口被用作终端,而不是作为通用串口。因此,需要通过修改启动配置文件来禁用串口终端。
打开终端并输入以下命令编辑配置文件:
sudo nano /boot/cmdline.txt
在编辑器中找到类似下面这段文本:
console=serial0,115200
删掉该行或者将其注释掉(在行首添加#),然后保存并退出编辑器。
启用串口硬件:打开终端并输入以下命令编辑另一个配置文件:
sudo nano /boot/config.txt
在文件的最后添加以下两行:
enable_uart=1
dtoverlay=pi3-miniuart-bt
配置串口参数:在终端中安装pyserial模块,该模块可以帮助您进行串口通信。输入以下命令安装pyserial:
pip install pyserial
使用Python代码进行串口通信:创建一个Python脚本,使用pyserial模块进行串口通信。以下是一个示例代码片段:
import serial
# 配置串口参数
port = '/dev/serial0' # 串口设备路径
baudrate = 9600 # 波特率
# 打开串口连接
ser = serial.Serial(port, baudrate)
# 发送数据
data = 'Hello, World!\n'
ser.write(data.encode())
# 接收数据
response = ser.readline()
print(response.decode())
# 关闭串口连接
ser.close()