Bluetooth HC-05蓝牙模块始终发送-1

Bluetooth HC-05蓝牙模块始终发送-1,bluetooth,arduino,Bluetooth,Arduino,我使用2个HC-05蓝牙模块在2个Arduino Nano之间通信。 我已经将HC-05的波特率设置为9600,一个作为主设备,另一个作为从设备。 主机始终发送值-1,尽管该值应来自模拟输入。 我已经检查了模拟读数,数值正确。 但当我检查蓝牙串行读数时,值为-1。 有人能帮我吗 主代码 #包括 软件序列mySerial(2,3); int state=0; 常数int ledPinon=8//led连接到的引脚 常数int ledPin=7//led连接到的引脚 int-xPin=A1; int

我使用2个HC-05蓝牙模块在2个Arduino Nano之间通信。
我已经将HC-05的波特率设置为9600,一个作为主设备,另一个作为从设备。
主机始终发送值-1,尽管该值应来自模拟输入。
我已经检查了模拟读数,数值正确。
但当我检查蓝牙串行读数时,值为-1。
有人能帮我吗

主代码
#包括
软件序列mySerial(2,3);
int state=0;
常数int ledPinon=8//led连接到的引脚
常数int ledPin=7//led连接到的引脚
int-xPin=A1;
int xPosition=0;
int-val=0;
无效设置(){
Serial.begin(9600);
mySerial.begin(9600);
pinMode(xPin,输入);
引脚模式(LED引脚,输出);
}
void循环(){
xPosition=模拟读取(xPin);
val=map(xPosition,0,1023,0,180);
if(mySerial.available()){
如果(xPosition>506){
数字写入(ledPin,高电平);
mySerial.write(val);//通过蓝牙串行链接发送1
}
否则如果((位置502)){
mySerial.write('0');
数字写入(ledPin,低电平);
}
else if(xPosition 0){//检查数据是否来自串行端口
state=mySerial.read();//从串行端口读取数据
蓝牙数据=状态;
ESC.write(蓝牙数据);
序列号println(州);
}
//控制LED
如果(蓝牙数据>90){
digitalWrite(发光二极管,高);//发光二极管亮起
}
否则{
digitalWrite(发光二极管,低);//发光二极管亮起
//BackLink();//指示灯亮起
}
}
void ledbink(){
数字写入(莱德皮农,高);
延迟(200);
数字写入(莱德皮农,低);
延迟(200);
}
void backlink(){
数字写入(ledPin,高电平);
延迟(100);
数字写入(ledPin,低电平);
延迟(100);
}

在主代码中,所有可能向从机发送任何内容的行都在检查Serial.available的if中。但是,由于从机从未向主机发送任何内容,因此它将始终返回0。因此,主机可能根本不发送任何内容。

如果没有数据,它将返回-1而不是0。available将永远不会返回urn为负数。如果没有可用数据,则返回0。如果没有数据,则返回-1。哦,你说的是
Serial.available()
而不是
Serial.read()
。我的错。