while 在前,所以是先判断条件再决定是否寻卡,是否你一开始 status 的值就是 0 ,导致直接跳过程序,然后 break 结束 switch ,进入下一个键盘扫描过程了。
或者:注意下你寻卡的逻辑,如果是没寻到就一直寻,应该是
status=0;
while(!status)
status=Request(0x52,&RevBuffer[2]); //寻卡
case内部的while循环条件是status,注意这个变量。如果它始终都是真,那么这个循环就是死循环,本次case就不能结束,后面的case也就不能执行了。
注意仔细看看Request函数的返回值,寻卡失败能返回哪些值,只有0和1吗?