Sunrise x3 Pie 和 STM32 串行通信代码
最编程
2024-03-07 17:19:10
...
x3派:
①接收
#!/usr/bin/env python3
import sys
import signal
import os
import time
# 瀵煎叆python涓插彛搴?
import serial
import serial.tools.list_ports
def serialTest():
print("List of enabled UART:")
os.system('ls /dev/tty[a-zA-Z]*')
try:
ser = serial.Serial("/dev/ttyS3", int(9600), timeout=1) # 1s timeout
except Exception as e:
print("!\n")
return 1
print(ser)
try:
while True:
# Read data from STM32
received_data = ser.readline().decode('ascii').strip()
if received_data:
print("接收到的数据 ",received_data )
time.sleep(1)
except KeyboardInterrupt:
pass
finally:
ser.close()
return 0
if __name__ == '__main__':
if serialTest() != 0:
print("!")
else:
print("!")
②发送
#!/usr/bin/env python3
import sys
import os
import time
import serial
import serial.tools.list_ports
class SerialSender:
def __init__(self, port, baudrate=9600):
self.ser = serial.Serial(port, baudrate)
def send_data(self, data):
try:
# 将数据转换为十六进制字符串并发送
hex_data = ' '.join(format(val, '02X') for val in data)
self.ser.write(bytes.fromhex(hex_data))
print(f"Sent data in hex: {hex_data}")
except Exception as e:
print(f"Error during sending data: {e}")
def close_serial(self):
self.ser.close()
if __name__ == '__main__':
# 请根据实际情况修改串口号
sender = SerialSender("/dev/ttyS3", 9600)
try:
# 示例数据,根据实际需求修改
data_to_send = [0x02]
sender.send_data(data_to_send)
except KeyboardInterrupt:
pass
finally:
sender.close_serial()
STM32:
接收和发送的代码直接使用江协科技的例程:
①发送:
②接收:
上一篇: Java 学习(普通类)