python内置的库函数确实很强大,serial库中包含了串口通信所用到的一些函数。本文用python实现了串口的一种简单通信。
代码实现:
import serial#导入串口通信库from time import sleep
ser = serial.Serial()defport_open_recv():#对串口的参数进行配置
ser.port='com3'
ser.baudrate=9600
ser.bytesize=8
ser.stopbits=1
ser.parity="N"#奇偶校验位
ser.open()if(ser.isOpen()):print("串口打开成功!")else:print("串口打开失败!")#isOpen()函数来查看串口的开闭状态defport_close():
ser.close()if(ser.isOpen()):print("串口关闭失败!")else:print("串口关闭成功!")defsend(send_data):if(ser.isOpen()):
ser.write(send_data.encode('utf-8'))#编码print("发送成功",send_data)else:print("发送失败!")if __name__ =='__main__':
port_open_recv()whileTrue:
a=input("输入要发送的数据:")
send(a)
sleep(0.5)#起到一个延时的效果,这里如果不加上一个while True,程序执行一次就自动跳出了
下面是Python进行串口通信时的步骤和操作方法:
(1)导入serial模块
import serial
(2)对串口的参数进行配置
ser = serial.Serial(
port=None,#设置串口号
baudrate=9600,# 波特率
bytesize=EIGHTBITS,# 数据位数
parity=PARITY_NONE,# 奇偶校验位
stopbits=STOPBITS_ONE,# 停止位
timeout=None,# 读超时设置
xonxoff=0,# 软件流控,流程控制,解决数据丢失问题
rtscts=0,# 硬件流控, #pc机中常用的两种流控制是硬件流控制(包括rts/cts、dtr/cts等)和软件流控制xon/xoff(继续/停止)
interCharTimeout=None# 字符间隔超时
(3)不同平台下的初始化
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口连接串行口
(4)常用方法
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://blog.csdn.net/weixin_43217958/article/details/109782000
版权归原作者 代码写得稀碎 所有, 如有侵权,请联系我们删除。
版权归原作者 代码写得稀碎 所有, 如有侵权,请联系我们删除。