在Arduino和OpenMV板子之间建立串口连接,可以使用Serial通信协议进行数据传输,并可以通过串口监视器来观察连接状态。为了让连接状态一直保持显示为正在连接,可以使用循环语句控制Arduino板子,不停的向OpenMV板子发送数据,以保持连接状态。
具体步骤如下: 1. 在Arduino板子中,使用Serial.begin()函数初始化串口,设置波特率为9600; 2. 在loop函数中,使用getCode()函数获取OpenMV板子发送的数据; 3. 如果getCode()函数返回的数据不为0,则使用Serial.println()函数将数据发送到串口监视器中; 4. 如果getCode()函数返回的数据为0,则使用delay()函数等待一段时间,以减少板子负担; 5. 在Arduino板子中定义sentCode()函数,用于向OpenMV板子发送数据; 6. 在循环语句中调用sentCode()函数,不停的向OpenMV板子发送数据,以保持连接状态。
Arduino 代码示例:
void setup() {
Serial.begin(9600); // 初始化串口,设置波特率为9600
}
void loop(){
int co = getCode(); // 获取数据
if (co != 0) { // 如果数据不为0,将数据发送到串口监视器
Serial.print("got code, the code is ");
Serial.println(co);
} else { // 如果数据为0,等待一段时间
delay(100);
}
sentCode(2); // 向OpenMV板子发送数据,保持连接状态
delay(100);
}
void sentCode(int b) {
// 发送数据
}
OpenMV 代码示例:
import time
from pyb import UART
uart_port = UART(3, 9600) # 初始化串口,设置波特率为9600
while (True):
# 接收数据
if uart_port.any():
code = uart_port.read().decode()
print("got code, the code is ", code) # 将数据输出到终端
else:
print("No code")
# 发送数据
uart_port.write(bytes([2]))
time.sleep(0.1)