void getList();
void clearList();
//数据结构体
typedef struct
{
int data[50][2] = {{0,0}}; //50行4列数组(理解为)
int len = 0;
}List;
List list; //结构体
String comdata = "";
void setup()
{
Serial.begin(9600);
//openmv
Serial1.begin(115200);
}
void loop()
{
if(Serial1.available())//检测软串口缓存
{
getList(); //获取数据
Serial.println("============a");
Serial.println(list.data[0][0]);
// delay(2000);
Serial.println("============b");
Serial.println(list.data[1][1]);
// delay(2000);
Serial.println("============c");
Serial.println(list.data[2][2]);
// delay(2000);
Serial.println("============d");
Serial.println(list.data[3][3]);
// delay(2000);
//Serial.println("============");
clearList();
}
}
//数据传输
String detectString()
{
while(Serial1.read() != '['); //arduino接收到的数据{}内的数据
return(Serial1.readStringUntil(']'));
}
void clearList()
{
int i=0;
for(i=0;i<4;i++){
list.data[i][i]=0;
}
list.len = 0;
}
void getList()
{
String s = detectString(); //创建字符串
String numStr = "";
int a1=0;
for(int i = 0; i<s.length(); i++)
{
if(s[i]=='('){
numStr = "";
}
else if(s[i] == ','){
list.data[list.len][a1] = numStr.toInt();//将string转换为int
numStr = "";
list.len++;
a1++;
}
else if(s[i]==')'){ //openmv发送数据的倒数第二个作为结束标记
//Serial.println(list.len);
list.data[list.len][a1] = numStr.toInt();//将string转换为int
numStr = "";
list.len++;
a1++;
}
else{
numStr += s[i];
}
}
}
openmv与arduino四数据传输
于 2022-03-19 16:20:22 首次发布