4038|3

20

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

请问各位大神,下面的switch语句会执行吗?怎么我仿真没数据 [复制链接]

#include "key.h"
#include "delay.h"
#include "lcd.h"


vu8 FriNum;  //定义全局变量
extern unsigned char KEY_Num;        //Ôúμ÷óÃμÄÎļtÖD¶¨òå°′¼üoÅ諾ֱäá¿
KeyScanState_Typedef KeyScanState = KeyScanState_0;        //¶¨òå°′¼üé¨Ãè×′ì¬Ã¶¾ù±ä

//·Çá¬DøIO¿ú¡¢2»í¬IO¿ú×é¶àᢰ′¼ü£¬°′¼üêy½Ïéù
/******************************************************************************
* oˉêyÃû                  : KeyScan
* oˉêyÃèêö            : °′¼üé¨Ãè3ìDò
* êäèë2Îêy      : ÎT
* êä3ö½á1û      : ÎT
* ·μ»ØÖμ        : °′¼ü¼üoÅ
******************************************************************************/
void KeyScan(void)
{
//        KeyPortStatus = GPIO_ReadInputData(KeyPort) & KeyPortPin;//»ñè¡°′¼ü¶Ë¿ú×′ì¬
        switch(KeyScanState)        //½øèë×′쬻úá÷3ì
        {
                case KeyScanState_0:        //×′ì¬1£oÅD¶ÏóD·ñ°′¼ü°′ÏÂ
                {
                        if(KEY1==0 || KEY2==0 || KEY3==0 || KEY4==0|| KEY5==0|| KEY6==0
                                || KEY7==0|| KEY8==0|| KEY9==0|| KEY0==0|| KEYPoint==0|| KEYStart==0)
                       
                                KeyScanState = KeyScanState_1;//óD°′¼ü°′Ï£¬¸üDÂ×′쬱êÖ¾
                        break;
                }
       
                case KeyScanState_1:        //×′ì¬2£oÅD¶ÏêÇ·ñ¶¶¶ˉ
                {
                        if(KEY0==0 ||KEY1==0 || KEY2==0 || KEY3==0 || KEY4==0|| KEY5==0
                                || KEY6==0|| KEY7==0|| KEY8==0||  KEY9==0
                          || KEYPoint==0|| KEYStart==0 )        //·Ç¶¶¶ˉ£¬è·èÏ°′¼ü°′Ï£¬Ö′DDÏàó|2ù×÷
                        {
                                if(KEY0==0) KEY_Num=0;
                                if(KEY1==0) KEY_Num=1;
                                if(KEY2==0) KEY_Num=2;
                                if(KEY3==0) KEY_Num=3;
                                if(KEY4==0) KEY_Num=4;
                                if(KEY5==0) KEY_Num=5;
                                if(KEY6==0) KEY_Num=6;
                                if(KEY7==0) KEY_Num=7;
                                if(KEY8==0) KEY_Num=8;
                                if(KEY9==0) KEY_Num=9;
                                if(KEYPoint==0)KEY_Num=10;
                                if(KEYStart==0) KEY_Num=11;
                               
                                KeyScanState = KeyScanState_2;//¸üDÂ×′쬱êÖ¾
                        }
                        else        //¶¶¶ˉ£¬è·èÏ°′¼üÎ′°′Ï£¬¸üDÂ×′쬱êÖ¾
                                KeyScanState = KeyScanState_0;
                        break;
                }
       
                case KeyScanState_2:        //×′ì¬3£oËéêÖ¼ì2a
                {
                        if(KEY1==1 && KEY2==1 && KEY3==1 && KEY4==1&& KEY5==1&& KEY6==1
                                && KEY7==1 && KEY8==1 && KEY9==1 && KEY0==1 && KEYPoint==1&& KEYStart==1)
                        {
                                KeyScanState = KeyScanState_0;
                        }
                        break;                       
                }                 
        }
}
void keycontrol(void)
{
//        if(time_20ms_ok)
//{
//                        time_20ms_ok = 0;
                        KeyScan();                //按键扫描
   switch(KEY_Num)
        {
                case 0:  FriNum=0;break;
                case 1:  FriNum=1;break;
                case 2:  FriNum=2;break;
                case 3:  FriNum=3;break;
                case 4:  FriNum=4;break;
                case 5:  FriNum=5;break;
                case 6:  FriNum=6;break;
                case 7:  FriNum=7;break;
                case 8:  FriNum=8;break;
                case 9:  FriNum=9;break;
                case 10: FriNum=10;break;
//                case 11: FriNum=11;break;
//                case 12: FriNum=12;break;
               
        }
//}

}

此帖出自stm32/stm8论坛

最新回复

switch(KEY_Num)         {                 case 0:  FriNum=0;break;                 case 1:  FriNum=1;break;                 case 2:  FriNum=2;break;                 case 3:  FriNum=3;break;                 case 4:  FriNum=4;break;                 case 5:  FriNum=5;break;                 case 6:  FriNum=6;break;                 case 7:  FriNum=7;break;                 case 8:  FriNum=8;break;                 case 9:  FriNum=9;break;                 case 10: FriNum=10;break; //                case 11: FriNum=11;break; //                case 12: FriNum=12;break;                         } 会执行,不过最好有个 default:  ...  break;  详情 回复 发表于 2015-12-16 17:51
点赞 关注
 

回复
举报

1798

帖子

0

TA的资源

五彩晶圆(初级)

沙发
 
两点建议:
1、case 下面不需要加大括号{};
2、if后面最好不要这么多个条件与

这个按键驱动写的太乱了,建议看看别人是怎么处理的
此帖出自stm32/stm8论坛
 
 

回复

20

帖子

0

TA的资源

一粒金砂(中级)

板凳
 
sint27 发表于 2015-12-16 10:42
两点建议:
1、case 下面不需要加大括号{};
2、if后面最好不要这么多个条件与

这个按键驱动写的太乱 ...

不是很乱吧,那我需要用这么多按键,不用那么多与用什么?求指教
此帖出自stm32/stm8论坛
 
 

回复

6105

帖子

4

TA的资源

版主

4
 
switch(KEY_Num)
        {
                case 0:  FriNum=0;break;
                case 1:  FriNum=1;break;
                case 2:  FriNum=2;break;
                case 3:  FriNum=3;break;
                case 4:  FriNum=4;break;
                case 5:  FriNum=5;break;
                case 6:  FriNum=6;break;
                case 7:  FriNum=7;break;
                case 8:  FriNum=8;break;
                case 9:  FriNum=9;break;
                case 10: FriNum=10;break;
//                case 11: FriNum=11;break;
//                case 12: FriNum=12;break;
               
        }
会执行,不过最好有个 default:  ...  break;
此帖出自stm32/stm8论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表