Bluetooth 为什么Serail.readBytes()读取垃圾值?
我正在写一个代码,通过蓝牙读取6位字符。这是我读取值的代码(我使用串行1): 但这会产生一些垃圾值 为什么会这样?我遗漏了哪一点 在arduino中,是否有其他有效的方法通过串行通信读取6位数字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是一个
谢谢您的时间。
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);
}