我已经使用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。可用()
我可以向手机写入数据,但手机无法向BT设备发送数据。
这里发生了什么,为什么我不能同时访问这两个功能,以及潜在的修复方法是什么?