有没有佬知道这个怎么办

img


我是想要将arduino和openmv板子串口,一直显示正在连线

  • 这篇博客也许可以解决你的问题👉 :【Openmv和arduino】电平编码通信
  • 以下回答由chatgpt基于相关博客总结生成:

    在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)