while (1)
{
c = getchar();
switch(state)
{
case 0:
if((GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_0) == Bit_SET))
{
state=1;
}
if ( c=='p')
{
state = 2;
}
break;
case 1 :
if((GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_0) != Bit_SET))
{
state = 0;
}
break;
case 2:
iprintf("%s",led_name_arr[i]);
if (c=='r')
{
state=0;
}
break;
}
}
我想打印 printf 然后达到 state2 .. 这怎么能实现。下面是我尝试过的以及我被卡住的地方。
伪代码:
if ( c==P)
{
printf(" hi");
state 2;
}
** 在这种情况下 printf 语句不会被执行 ** 或
case 2:
iprintf("%s",led_name_arr[i]);
if (c=='r')
{
state=0;
}
break;
** 在这种情况下,printf 语句会循环打印 **
我不希望 while 循环停止,在连续循环中我希望 case 0 继续工作,但是当它获得输入 p .. 它暂停并执行 printf ... 并等到它得到 ar 以恢复 case 0 .. ..因此程序永远不会停止,而是等待“P”或“R”来执行每个案例......我希望我有意义
任何帮助将不胜感激 。