这样连接uart1和uart3一样。
未开启程序,mega2560收到空
mega2560发送了11次
openmv只收到了3次
openmv代码:
void setup() {
Serial.begin(9600);
Serial1.begin(4800);
pinMode(LED_BUILTIN, OUTPUT);
}
int cx=0;
void loop() {
if (Serial1.available() > 0) {
char received = Serial1.read();
digitalWrite(LED_BUILTIN, HIGH);
Serial.print("Received: ");
Serial.println(received);
// 简单回声测试
if(received == 'T') {
cx++;
Serial1.write(cx); // 回复R
Serial.println(cx);
}
delay(100);
digitalWrite(LED_BUILTIN, LOW);
}
}
arduino代码
from pyb import UART
import time
uart = UART(1, 4800, timeout_char= 1000)
uart.read() # 清空初始化残留数据
while True:
# 发送'T'
uart.write(b'T')
print("Sent 'T'")
# 接收优化:增加重试检测,避免单次错过
for _ in range(5): # 连续检测5次(共250ms)
if uart.any():
data = uart.read(1) # 读取所有可用数据(而非固定1字节)
print("Received:", data)
break
time.sleep_ms(50)
else:
print("No data received")
time.sleep_ms(500) # 降低发送频率,避免冲突
插上wifi扩展板后,没有异常:
