我使用的是USB-TTL串口,下面是测试之前的一些准备工作。
ls /dev/
dmesg|grep ttyUSB*
dmesg|grep ttyS*
sudo chmod 666 /dev/ttyUSB0
pip3 install 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,())
while 1:
time.sleep(2)
data_ser.write(b'1')
time.sleep(2)
data_ser.write(b'0')
串口接受数据并返回python demo
import serial
import time
ser = serial.Serial("/dev/ttyUSB0",9600,timeout = 5)
ser.flushInput()
def main():
while True:
count = ser.inWaiting()
if count !=0 :
recv = ser.read(ser.in_waiting).decode("gbk")
ser.write(b'get')
print(time.time()," --- recv --> ", recv)
time.sleep(0.1)
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():终止当前写操作,并丢弃发送缓存中的数据。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)