星瞳实验室APP,快速收到回复
  • 我们只解决官方正版的OpenMV的问题(STM32),其他的分支有很多兼容问题,我们无法解决。
  • 如果有产品硬件故障问题,比如无法开机,论坛很难解决。可以直接找售后维修
  • 发帖子之前,请确认看过所有的视频教程,https://singtown.com/learn/ 和所有的上手教程http://book.openmv.cc/
  • 每一个新的提问,单独发一个新帖子
  • 帖子需要目的,你要做什么?
  • 如果涉及代码,需要报错提示全部代码文本,请注意不要贴代码图片
  • 必看:玩转星瞳论坛了解一下图片上传,代码格式等问题。
  • openmv发送数据给arduino之后,怎么给收到的数据命名,我试了好多次,都改不了?



    • 这是arduino的代码

      #include <SoftwareSerial.h>
      
      SoftwareSerial softSerial(10, 11); // RX, TX
      
      typedef struct
      {
        int data[50][2] = {{0,0}};
        int len = 0;
      }List;
      List list;
      
      void setup() {
        // put your setup code here, to run once:
        softSerial.begin(9600);
        Serial.begin(9600);
      }
      
      void loop() {
        if(softSerial.available())
        {
          getList();
          for (int i=0; i<list.len; i++)
          {
            Serial.print(list.data[i][0]);
            Serial.print('\t');
            Serial.println(list.data[i][1]);
          }
          Serial.println("============");
          clearList();
        }
      }
      
      String detectString()
      {
        while(softSerial.read() != '{');
        return(softSerial.readStringUntil('}'));
      }
      void clearList()
      {
        memset(list.data, sizeof(list.data),0);
        list.len = 0;
      }
      
      void getList()
      {
        String s = detectString();
        String numStr = "";
        for(int i = 0; i<s.length(); i++)
        {
          if(s[i]=='('){
            numStr = "";
          }
          else if(s[i] == ','){
            list.data[list.len][0] = numStr.toInt();
            numStr = "";
          }
          else if(s[i]==')'){
            list.data[list.len][1] = numStr.toInt();
            numStr = "";
            list.len++;
          }
          else{
            numStr += s[i];
          }
        }
      }