import time from pyb import UART import ustruct # 初始化串口 uart = UART(3, 115200) # 根据实际情况选择串口号和波特率 def send_serial_data(data1, data2): frame_start = bytes([0x02]) # 帧头 frame_end = bytes([0x03]) # 帧尾 payload = bytes([ord(data1), data2]) # 字符和数字作为有效载荷 frame = frame_start + payload + frame_end uart.write(frame) time.sleep(0.01) # 等待传输完成 # 调用函数发送数据 send_serial_data('A', 123) 完善该代码
时间: 2024-04-17 22:26:47 浏览: 171
以下是完善后的代码,包括了错误处理和数据类型校验:
```python
import time
from pyb import UART
# 初始化串口
uart = UART(3, 115200) # 根据实际情况选择串口号和波特率
def send_serial_data(data1, data2):
frame_start = bytes([0x02]) # 帧头
frame_end = bytes([0x03]) # 帧尾
# 校验数据类型
if not isinstance(data1, str):
raise TypeError("data1 must be a string")
if not isinstance(data2, int):
raise TypeError("data2 must be an integer")
payload = bytes([ord(data1), data2]) # 字符和数字作为有效载荷
frame = frame_start + payload + frame_end
uart.write(frame)
time.sleep(0.01) # 等待传输完成
# 调用函数发送数据
send_serial_data('A', 123)
```
这段代码添加了类型校验,确保 `data1` 是字符串类型,`data2` 是整数类型。如果传入的数据类型不符合要求,将会抛出 `TypeError` 异常。你可以根据你的需求进一步修改和优化这段代码。
阅读全文
相关推荐

















