Bluetooth 为什么Serail.readBytes()读取垃圾值?

Bluetooth 为什么Serail.readBytes()读取垃圾值?,bluetooth,arduino,serial-port,Bluetooth,Arduino,Serial Port,我正在写一个代码,通过蓝牙读取6位字符。这是我读取值的代码(我使用串行1): 但这会产生一些垃圾值 为什么会这样?我遗漏了哪一点 在arduino中,是否有其他有效的方法通过串行通信读取6位数字 谢谢您的时间。Serial1如果(Serial1.available()>0){为true,则在时可能只接收到1个字节 所以读6很可能会产生不好的结果。 等到你有了你需要的东西: if(Serial1.available()>=6){ 由于没有足够的数据,readBytes将停止读取。如果data是一个

我正在写一个代码,通过蓝牙读取6位字符。这是我读取值的代码(我使用串行1):

但这会产生一些垃圾值

为什么会这样?我遗漏了哪一点

在arduino中,是否有其他有效的方法通过串行通信读取6位数字


谢谢您的时间。

Serial1
如果(Serial1.available()>0){为true,则在
时可能只接收到1个字节

所以读6很可能会产生不好的结果。 等到你有了你需要的东西:

if(Serial1.available()>=6){


由于没有足够的数据,
readBytes
将停止读取。如果
data
是一个局部变量,则未写入单元格的内容可以是任何内容(除了最后一个单元格外,您不必对已知数据进行零初始化/填充)。

它读取数据,但方式混乱。就像我发送“123456”时,它接收“*12 | 9”您是否像我在回答中提到的那样等到收到足够的数据?您的波特率正确吗?是的,我正确。串行通信和HC-05蓝牙模块的宽频率相同(9600)。
Serial.println("DAMN YOU");
char data[DATA_LENGTH+1];   //DATA_LENGTH is 6
data[DATA_LENGTH]='\n';
uint8_t actu_length,from_index,to_index,from_road=0,to_road=0;
if (Serial1.available() > 0){
     Serial1.readBytes(data,DATA_LENGTH);
     Serial.println("bla bla bal");
     Serial.println(data);
 }