我使用的是USB-TTL串口,下面是测试之前的一些准备工作。
ls /dev/ #查看设备,插拔串口设备注意有没有新增设备
dmesg|grep ttyUSB*
dmesg|grep ttyS*
sudo chmod 666 /dev/ttyUSB0 #更改串口读写权限
pip3 install pyserial #安装pyserial库
串口发数据python demo
import serial
import time
import _thread # 导入线程包
data_ser = serial.Serial("/dev/ttyUSB0",9600,timeout = 5)
data_ser.flushInput()
def get_data():
while True:
data_count = data_ser.inWaiting()
if data_count !=0 :
recv = data_ser.read(data_ser.in_waiting).decode("gbk")
print(time.time()," --- data_recv --> ", recv)
time.sleep(0.1)
if __name__ == '__main__':
_thread.start_new_thread(get_data,()) # 开启线程,执行get_data方法
while 1:
time.sleep(2)
data_ser.write(b'1') # 发送二进制1
time.sleep(2)
data_ser.write(b'0') # 发送二进制0
串口接受数据并返回python demo文章来源:https://www.toymoban.com/news/detail-417527.html
import serial # 导入串口包
import time # 导入时间包
ser = serial.Serial("/dev/ttyUSB0",9600,timeout = 5) # 开启com3口,波特率115200,超时5
ser.flushInput() # 清空缓冲区
def main():
while True:
count = ser.inWaiting() # 获取串口缓冲区数据
if count !=0 :
recv = ser.read(ser.in_waiting).decode("gbk") # 读出串口数据,数据采用gbk编码
ser.write(b'get')
print(time.time()," --- recv --> ", recv) # 打印一下子
time.sleep(0.1) # 延时0.1秒,免得CPU出问题
if __name__ == '__main__':
main()
常用方法:
ser.isOpen():查看端口是否被打开。
ser.open() :打开端口‘。
ser.close():关闭端口。
ser.read():从端口读字节数据。默认1个字节。
ser.read_all():从端口接收全部数据。
ser.write(“hello”):向端口写数据。
ser.readline():读一行数据。
ser.readlines():读多行数据。
in_waiting():返回接收缓存中的字节数。
flush():等待所有数据写出。
flushInput():丢弃接收缓存中的所有数据。
flushOutput():终止当前写操作,并丢弃发送缓存中的数据。文章来源地址https://www.toymoban.com/news/detail-417527.html
到了这里,关于ubuntu系统python实现串口通信的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!