TakwayBoard/tools/orangepi_uart5.py

39 lines
1.3 KiB
Python
Raw Normal View History

2024-06-26 12:20:40 +08:00
import serial
import time
# UART配置
uart_port = '/dev/ttyS5' # UART端口路径
baud_rate = 115200 # 波特率
2024-06-26 12:46:32 +08:00
2024-06-26 12:20:40 +08:00
try:
# 初始化串口连接
ser = serial.Serial(uart_port, baud_rate, timeout=1)
print("UART初始化成功开始读取数据...")
while True:
# 尝试读取一行数据
2024-06-26 12:42:44 +08:00
ori_data = ser.readline() # 读取一行原始数据
print(f"原始数据: {ori_data}")
data = ori_data.decode('utf-8').strip() # 读取一行并解码
2024-06-26 12:20:40 +08:00
if data: # 如果读取到数据
try:
2024-06-26 12:46:32 +08:00
num = int(data) # 尝试将读取的数据转换为整数
print(f"接收到的数字: {num}")
# print(f"接收到的字符串: {data}")
2024-06-26 12:49:22 +08:00
battery_level = num / 4096 * 4.8 /4.2 * 100 # 计算电池电量
2024-06-26 12:48:24 +08:00
print(f"电池电量: {battery_level}%")
2024-06-26 12:20:40 +08:00
except ValueError: # 如果转换失败,说明不是有效的数字
print("接收到的数据无法转换为数字")
time.sleep(1) # 每隔一秒检查一次新数据
except KeyboardInterrupt:
print("程序被中断正在关闭UART连接...")
ser.close()
print("UART连接已关闭。")
except Exception as e:
print(f"发生错误: {e}")
if 'ser' in locals():
ser.close()