case循环怎么样只执行一次

STM32用定时器中断没1ms产生一个case,case里的语句在1ms内一直在循环,怎么样让case里的语句只执行一次?

加上一个bool变量默认为false,执行了就设置为true,遇到false才执行

case是啥,你用的不是c语言吗
你不写while不就不循环了

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/379973
  • 这篇博客也不错, 你可以看下【STM32---传感器】基于状态机机制实现多路超声波传感器数据采集及异常检测
  • 除此之外, 这篇博客: 初识STM32工作原理和基础编程中的 例:如何实现一个按键控制一个灯的亮灭?按一下亮,按一下灭,再按一下亮,再按一下灭? 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:

    答:用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;
    }
    

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^