我已经看到了有关此问题的相关帖子的一些答案,但并不能完全解决我的问题。这是我的代码:
#include <VirtualWire.h>
uint8_t RFbuff[VW_MAX_MESSAGE_LEN];
uint8_t RFbuflen = VW_MAX_MESSAGE_LEN;
const int REMOTE = 0;
String remoteScriptName(){
String scriptName;
switch(REMOTE){
case 1:
vw_get_message(RFbuff, &RFbuflen);
String RFSTRBUFF = RFbuff;
scriptName = RFSTRBUFF;
delay(1200);
break;
default:
scriptName = "script";
delay(500);
}
return(scriptName);
}
void setup() {
pinMode(LED_BUILTIN, HIGH);
switch(REMOTE){
case 1:
vw_set_rx_pin(8);
vw_setup(2000);
vw_rx_start();
break;
default:
digitalWrite(LED_BUILTIN, LOW);
delay(500);
digitalWrite(LED_BUILTIN, HIGH);
delay(500);
digitalWrite(LED_BUILTIN, LOW);
delay(500);
digitalWrite(LED_BUILTIN, HIGH);
}
}
void loop(){}
在remoteScriptName()
的switch(REMOTE)
功能中,有case:
和default:
。当我将代码上传到Arduino micro时,它会跳过default
中的switch(REMOTE)
。但是然后在void setup
,我有相同的switch语句,但是在这种情况下(上传代码后)它确实执行了default:
!
我在switch()
方面没有太多经验,因此任何建议都很受欢迎。
可能范围不足,因此请尝试每种情况
//..
case 1:{
vw_get_message(RFbuff, &RFbuflen);
String RFSTRBUFF = RFbuff;
scriptName = RFSTRBUFF;
delay(1200);
}
break;
default:
scriptName = "script";
delay(500);
}
//...