1.串口介绍
串行接口 (Serial Interface) 是指数据一位一位地顺序传送,其特点是通信线路简单,只要一对传输线就可以实现双向通信。
这一对传输线包括发送数据线(TX)和接收数据线(RX),两个设备连接方式是交叉连接,即设备的发送端TX要连接到另个设备的接收端RX,此外两个设备的地线GND要接到一起才可以通信。
通信前双方的通信格式要设置成一样的,因为这个项目中的从机已经设置好了,所以需要拿到通信协议才能知道格式。
2.串口连接
(1)使用树莓派自带的GPIO(不推荐):
树莓派的电路板上有40根针脚,其中就有串行接口的引脚,但是树莓派3中的蓝牙模块占用了这其中的串口,串口想用在别的功能上还需要关闭蓝牙,非常不方便。
(2)使用USB转串口模块(推荐):
这种模块非常方便,淘宝上就几块钱一个,而且可以先插在电脑上调试,模块一般至少有四个接口,分别是TX、RX、GND和电源输出。
3.串口通信编程
因为树莓派上要使用的是Python,而且使用USB转串口模块开发,所以可以先在电脑上试一下,程序基本是通用的,需要pyserial这个模块。下面这个网页里面写了pyserial的基本的用法:
https://blog.csdn.net/u012611644/article/details/79125234
https://blog.csdn.net/JasonTang1992/article/details/59716319
主要看第二个网页就行,需要注意的是打开串口那一步需要串口的设备号和波特率,下面这五种介绍了大部分系统的设置方式,第一个参数是设备号,第二个参数是波特率。
ser=serial.Serial("/dev/ttyUSB0",9600,timeout=0.5) #使用USB连接串行口
ser=serial.Serial("/dev/ttyAMA0",9600,timeout=0.5) #使用树莓派的GPIO口连接串行口
ser=serial.Serial(1,9600,timeout=0.5)#winsows系统使用com1口连接串行口
ser=serial.Serial("com1",9600,timeout=0.5)#winsows系统使用com1口连接串行口
ser=serial.Serial("/dev/ttyS1",9600,timeout=0.5)#Linux系统使用com1口连接串行口
在Windows里可以对比插入USB模块前后,设备管理器里出现的那个串口号
在树莓派或者Linux系统里可以进入终端然后对比/dev下USB模块插入前后出现的那个设备号,一般可能就是ttyUSB0
然后下面就是对着那边的通信协议向串口设备write或者read数据就可以了。
网友评论