python学习:python serial

serial模块使用方法

新建打开一个serial实例

import serial
if __name__ == '__main__':
    ser = serial.Serial()
    ser.port = 'COM1'      
    ser.baudrate = 115200 
    print(ser)
'''
# 打印内容如下:
Serial<id=0x1c695f0d340, open=True>
(port='COM1',          -> 读或者写端口
baudrate=115200,       -> 波特率
bytesize=8,            -> 字节大小
parity='N',            -> 校验位
stopbits=1,            -> 停止位
timeout=None,          -> 超时设置
xonxoff=False,         -> 软件流控
rtscts=False,          -> 硬件流控
dsrdtr=False)          -> 硬件流控
'''

serial模块常用方法

方法说明
ser.isOpen()查看端口是否被打开
ser.open()打开端口
ser.close()关闭端口
ser.read()从端口读字节数据,默认1个字节
ser.read_all()从端口接收全部数据
ser.write(‘hello’)向端口写数据
ser.readline()读一行数据
ser.readlines()读多行数据
in_waiting()返回接收缓存中的字节数
flush()等待所有数据写出
flushInput()丢弃接收缓存中的所有数据
flushOutput()终止当前写操作,并丢弃发送缓存中的数据

 发送数据

import serial
if __name__ == '__main__':
    ser = serial.Serial('COM1', 115200)
    success_bytes = ser.write(b'This is data for test\r\n') 
    # b表示bytes类型, 直接发送字符串报错
    print(success_bytes) # 发送数据长度

接收数据 

- read方法接收
        - read(size),接收size单位的字符,默认接收一个字节
        - 该方法是阻塞的,在没设置超时时间下,不接收到size单位的字符就一直等待接收
        - 如果设置了超时时间,时间未到则一直等待

import serial
if __name__ == '__main__':
    ser = serial.Serial('COM1', 115200)
    data = ser.read(11) # 读取11字符
    print(data) # 打印格式 :b'hello world'


- readline方法接收
        - readline()是按行读取,即读到换行符是停止读取
        - 该方法是阻塞的,在没设置超时时间下,不接收到size单位的字符就一直等待接收
        - 如果设置了超时时间,时间未到则一直等待
 

import serial
if __name__ == '__main__':
    ser = serial.Serial('COM1', 115200)
    data = ser.readline() # 读取到换行符为止
    print(data) # 打印格式 :b'hello world\n'

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值