STM32用定时器中断没1ms产生一个case,case里的语句在1ms内一直在循环,怎么样让case里的语句只执行一次?
加上一个bool变量默认为false,执行了就设置为true,遇到false才执行
case是啥,你用的不是c语言吗
你不写while不就不循环了
答:用flag状态标志位
代码如下:
int main(void)
{
int flag = 1;//相当于标志位
keyInit();//按键初始化
LED_GPIO_Config();//LED初始化
while(1)
{
if(GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_1) == 0)//按了key1
{
if(flag)//第一次点按键,flag==1,条件成立
{
GPIO_ResetBits(GPIOA,GPIO_Pin_0);
flag = 0;
}
else
{
GPIO_SetBits(GPIOA,GPIO_Pin_0);
flag = 1;
}
}
main_delay(200);//按键消抖
}
return 0;
}