串口操作
1. 基本操作
1 | import serial # 引入 serial 库 |
2. 搜索串口
1 | class getCom(QThread): |
串口的相关信息
- | 描述 | 函数 | 示例输出 |
| ————- | ———————— | —————————————————————————— |
| 串口信息 | port | COM7 - Silicon Labs CP210x USB to UART Bridge (COM7) |
| 设备名 | name | COM7 |
| 设备号 | device | COM7 |
| 设备描述 | description | Silicon Labs CP210x USB to UART Bridge (COM7) |
| 硬件 ID | hwid | USB VID:PID=10C4:EA60 SER=0001 LOCATION=1-5 |
| 供应商 ID | vid | 4292 |
| 产品 ID | pid | 60000 |
| 序列号 | serial_number | 0001 |
| 位置 | location | 1-5 |
| 制造商 | manufacturer | Silicon Labs |
| 产品 | product | None |
| 接口 | interface | None |
| USB 信息 | usb_info() | USB VID:PID=10C4:EA60 SER=0001 LOCATION=1-5 |
| USB 描述 | usb_decription() | COM7 |
- | 描述 | 函数 | 示例输出 |
3. 打开串口
1 | def serialOpen(com, bps, timex): |
打开串口参数
- ```python
port = None, # 设备名
baudrate = 9600, # 波特率
bytesize = EIGHTBITS, # 数据位
parity = PARITY_NONE, # 奇偶校验
stopbits = STOPBITS_ONE, # 停止位
timeout = None, # 读超时
xonxoff = False, # 软件流控
rtscts = False, # 硬件流控
write_timeout = None, # 写超时
dsrdtr = False, # DSR/DTR
inter_byte_timeout = None, # 字节间隔超时
exclusive = None, # 独占端口1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# 4. 串口数据读取
```python
class serialRead_original(QThread):
dateReadUpdate = pyqtSignal(str) # 数据更新信号
serDisconnect = pyqtSignal() # 串口断开信号
def run(self):
"""读取串口数据
args: NONE
return: NONE
"""
print("serialRead start")
ser.flushInput() # 清空缓冲区
while(isConnected):
if serialIsOpen(ser) == False: # 串口断开 或 不存在
print("serialRead stop")
self.serDisconnect.emit()
serialClose(ser)
break
count = ser.inWaiting() # 获取缓冲区字符数量
# print("count: ", count)
if count != 0:
str = ser.readline(ser.in_waiting) # 读取内容并回显
# str = glo.ser.read(ser.in_waiting)
# str -> b'' => 二进制数据
# str = str.decode(encoding='utf-8', errors='ignore')
self.dateReadUpdate.emit(str)
# print('data:', data)
sleep(1)
- ```python
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Bayyy's!