一、基本想法
boot键对应的引脚是GPIO0,在写程序过程中可以先做一个判断GPIO0的电平状态,但由于需要实现只按一下boot程序就继续往下执行,如果只对GPIO0的电平状态判断就要一直按着boot程序才能拿往下执行,因此需要设置一个变量来控制。
二、用到的函数
digitalRead();
中间需要给出GPIO的编号,返回值是引脚的状态,True对应High, False对应Low
三、测试代码
int temp=0;
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
}
void loop() {
// put your main code here, to run repeatedly:
if( digitalRead(0)&&temp==0) //实现按boot回传,使用digitalRead()和临时变量temp来判断是否按下boot键
{ //若按下boot则将temp置为1,开始数据传输
Serial.print("Not ready\n");//没有按下boot,在串口监视器显示还没准备好
delay(1000);
return;
}
else temp=1;
if(temp)Serial.print("OK\n");
delay(2000);
}
实现的结果:
可见按boot前后程序运行的状态不一样,通过一个if和一个读引脚状态函数和一个变量即可实现按boot才执行后续程序的操作