我使用 SoftwareSerial.h 库编写了以下代码
void loop(){
//BT LED READ
if(BTSerial.available())
{
int c = BTSerial.read();
Serial.println(c);
Serial.print("\n");
if (c == 1)
digitalWrite(ledpin, HIGH);
else if (c == 0)
digitalWrite(ledpin, LOW);
//BUTTON PRESS CODE
buttonState = digitalRead(inputPin);
if(buttonState == HIGH)
{
digitalWrite(outputLed, HIGH);
BTSerial.print(22);
}
else
{
digitalWrite(outputLed, LOW);
}
}
//Serial.println(digitalRead(state));
}
为了配合我的代码,我在 Xamarin Studio 中编写了一个移动应用程序。我的代码所做的是,它接受来自应用程序的调用(0 或 1 字节),使其打开 LED。
其次,我想要完成但又苦苦挣扎的是,我希望 Arduino 通知我的应用程序(或写......我真的不确定这个库允许我做什么,因为我很难找到一些详细的文档)当我的面包板上的一个按钮被按下时——按下时它也会打开一个 LED。
我意识到,如果我将按钮按下的代码封装在BTSerial.available()
其中,它就不起作用,这意味着它不会向我的应用程序发送任何数据,当我按下按钮时 LED 也不会亮起。- 虽然它仍然接受发送给它的参数。
反之亦然,如果我不将我的按钮代码封装在BTSerial.available()
我的手机中,我可以将数据写入我的手机,但我的手机无法将数据发送到 BT 设备。
这里发生了什么,为什么我不能同时访问这两个功能,什么是潜在的修复?