赞
踩
串口Uart操作
是嵌入式最基础,最简单,也是使用最广范的一种通信协议串口(serial)
,全称串行通信接口或串行通讯接口,是一种常用于电子设备间通讯的全双工扩展接口串行通信
:串口通讯的技术基础,指一位一位地按顺序传送数据。其特点是线路简单,只需一对传输线,即可实现双向通信,大大降低成本。适用于远距离通信,但速度较慢;pyserial
是python中处理串口通讯的一个模块名,操做简单高效https://pythonhosted.org/pyserial/
pip install pyserial
学会操做串口十分简单,学会如何打开一个串口并设置其相关属性
,然后能使用该串口接受
和发送
数据,就彻底掌握了串口的操做使用。
Serial()
方法,即可新建打开一个serial实例属性 | 示例 | 含义 |
---|---|---|
port | port = ‘COM1’ | 读或者写端口 |
baudrate | baudrate = 115200 | 波特率 |
bytesize | bytesize = 8 | 字节大小 |
parity | parity = ‘N’ | 校验位 |
stopbit | stopbits = 1 | 停止位 |
timeout | timeout = None | 超时设置 |
xonxoff | xonxoff = False | 软件流控 |
rtscts | rtscts = False | 硬件流控 |
dsrdtr | dsrdtr = False | 硬件流控 |
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) -> 硬件流控
'''
方法 | 说明 |
---|---|
ser.isOpen() | 查看端口是否被打开 |
ser.open() | 打开端口 |
ser.close() | 关闭端口 |
ser.read() | 从端口读字节数据。默认1个字节。 |
ser.read_all() | 从端口接收全部数据。 |
ser.write(“hello”) | 向端口写数据。 |
ser.readline() | 读一行数据。 |
ser.readlines() | 读多行数据。 |
in_waiting() | 返回接收缓存中的字节数。 |
flush() | 等待所有数据写出。 |
flushInput() | 丢弃接收缓存中的所有数据。 |
flushOutput() | 终止当前写操作,并丢弃发送缓存中的数据。 |
write()
即可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(size)
,接收size单位的字符,默认接收一个字节阻塞
的,在没设置超时时间下,不接收到size单位的字符就一直等待接收import serial
if __name__ == '__main__':
ser = serial.Serial('COM1', 115200)
data = ser.read(11) # 读取11字符
print(data) # 打印格式 :b'hello world'
readline()
是按行读取,即读到换行符是停止读取阻塞
的,在没设置超时时间下,不接收到size单位的字符就一直等待接收import serial
if __name__ == '__main__':
ser = serial.Serial('COM1', 115200)
data = ser.readline() # 读取到换行符为止
print(data) # 打印格式 :b'hello world\n'
感谢阅读 若有错误 欢迎指正 !!!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。