一、树莓派USB与PC实现串口通信
最近小编又在瞎折腾,用血泪史写下此文,小编购买的器件有:CH340和HC-08的zigbee无线蓝牙,两套(一个使用在树莓派,一个使用在PC端),要购买后先在电脑测试端配置好zigbee的主从模块和波特率等问题,先确认PC之间能够收发数据再开始下面的调试。
树莓派usb连接串口使用
命令python查看安装到系统上的串口,命令行输入python -m serial.tools.list_ports
链接:
树莓派通过USB读取串口数据
linux下的usb转串口的使用(修改)
使用树莓派的USB转串口,实现自发自收的步骤
树莓派端设置
step1.使能串口
菜单–>首选项–>Raspberry Pi Configure 将Serial Port改为Enable(可以全部设置为enable),然后重启。
step 2. 编辑cmdline.txt
此处谨慎,可以把之前的注释掉(#),重新复制进行以下操作,将/boot目录下的cmdline.txt里面的 “console=ttyAMA0, 115200”这句话删掉。内容可能有差异,将第一个console至第二个console前的内容删除。在删除的时候可能提示没有权限,需要使用命令行,sudo vi /boot/cmdline.txt,在vim中i是编辑,esc是退出编辑,:q是退出vim,ctrl+o保存设置,ctrl+x退出设置
step 3. 检测USB0正确安装
将USB插到树莓派上的任意USB接口上,然后在终端输入命令查看。USB0是否正确安装
*ttyAMA0是通过树莓派GIPO串口进行通信时候使用的端口。
注意:使用CH340的USB转串口才能识别出来,无线串口使用HC-08蓝牙(主从一体),接线方式如下
PC端显示的串口内容如下
实现代码如下
import serial
import time
#import sqlite3
ser = serial.Serial("/dev/ttyUSB0",9600,timeout=0.5)
ser.write(b"Raspberry pi is ready")
try:
while True:
count = ser.inWaiting()
if count!=0:
recv = ser.read(count)
ser.write(recv)
#print(retuenvalue(recv).localtime)
ser.flushInput()
time.sleep(1)
except KeyboardIbterrupt:
ser.close()