Bluetooth 如何在arduino中将从串行读取的数据存储到阵列中?
我试图将通过蓝牙串行发送的RFID标签号的整数值存储到一个数组中,以便读卡器在通过标签时识别标签Bluetooth 如何在arduino中将从串行读取的数据存储到阵列中?,bluetooth,arduino,rfid,Bluetooth,Arduino,Rfid,我试图将通过蓝牙串行发送的RFID标签号的整数值存储到一个数组中,以便读卡器在通过标签时识别标签 while (Genotronex.available() > 2) { int n; for (n =0; n<10 ; n++){ // should read 10 Tags int i; for(i = 0 ; i < 3; i++){ BluetoothData[i] = Genotron
while (Genotronex.available() > 2) {
int n;
for (n =0; n<10 ; n++){ // should read 10 Tags
int i;
for(i = 0 ; i < 3; i++){
BluetoothData[i] = Genotronex.read();
y[i] = BluetoothData[i] - '0'; // convert data received from BT to integer
x[n] = y[0]*100+y[1]*10+y[2]*1; // tag number of 3 digits
}
}
}
delay(100);// prepare for next data ...
if(str[0] == x[n]) //if passed tag has the same number sent from BT
{
Serial.print("Helllo World!\n");
Serial.print(n);
}
如果您的逻辑是正确的,那么我发现的唯一错误是x[n]赋值在循环内
for (n =0; n<10 ; n++){ // should read 10 Tags
for(i = 0 ; i < 3; i++){
BluetoothData[i] = Genotronex.read();
y[i] = BluetoothData[i] - '0'; // convert data received from BT to integer
}
x[n] = y[0]*100+y[1]*10+y[2]*1; // tag number of 3 digits
}//end n->for loop
试试这个。x[n]应该在i循环范围之外。您应该测试BluetoothData[i]是否在0上有n个stuck,我不明白为什么!y存储从BT读取的3位整数,因为BT每次只发送一个字符字节。为什么我要测试它?蓝牙数据在你的代码中存储3个字节你通过蓝牙发送什么数据?str[0]是如何定义的?我通过蓝牙发送rfid标签号,这样我就可以创建一种标签号数据库。str[0]是第一对标记号。x[n]是一个整数数组,它应该包含多个rfid卡的标签号。谢谢,但是在循环外分配x[n]仍然不能解决这个问题。每次允许存储从BT读取的多个值时,n必须增加,但我不明白为什么n的值为0!查看我的代码。我之前公开的修改是为了修复x数组的覆盖。