OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2445|回复: 6

这样写代码,为啥按键效果不满意,麻烦大佬给指点一下

[复制链接]

3

主题

23

帖子

0

精华

初级会员

Rank: 2

积分
86
金钱
86
注册时间
2020-5-2
在线时间
13 小时
发表于 2020-6-20 16:56:03 | 显示全部楼层 |阅读模式
1金钱
本帖最后由 我是看海 于 2020-6-20 17:11 编辑

int main(void)
{

                delay_init();                                                                                                                                                     //延时函数初始
          delay_ms(100);        
                NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);         
                uart_init(9600);        
   //        Key_GPIO_Config();                                                                                                                                                         //串口初始化为9600        
          TIM5_PWM_Init(999,24);                                                                                        //200pwm调用形式
          TIM3_Int_Init(4999, 71);  
                IIC_GPIO_Configuration( IIC_GOIO_SDA , IIC_SDA , IIC_GPIO_SCL , IIC_SCL );
          delay_ms(10);
                MPU6050_Inital();
     delay_ms(10);        
        KEY_Init();               
          LCD_Init();
                Remote_Init();                        //红外接收初始化         
                LED0=!LED0;
         POINT_COLOR=RED;
LCD_ShowString(30,10,200,16,16,"2020/6/27");         
        while(1)
                {
                        flag=0;
                        flag5=1;
                        flag2_1=0;
                //        num=0;
                        t=0;
                        //nu=0;
                        //n=0;
                        setlong=0;
                        setang=0;
                        setR=0;
                        t=KEY_Scan(0);        
      resetmot();
                                //Write_LCD_Command(0x01);        //清屏
             delay_ms(2);
            // Write_LCD_Command(0x30);        //必须再次打开基本指令,因为绘图开了扩充指令        
       LCD_ShowString(30,30,200,16,16,"jibenmeshi");         
        
        if(t==KEY0_PRES)        
{
                if(num<7)
                                                num++;
                                                else
                                                        num=0;        
switch(num)
                                {
                                        case 1: LCD_ShowString(30,50,200,16,16,"START");break;
                                        case 2: LCD_ShowString(30,70,200,16,16,"1:Mode1");                 
                 mode1();break;        
                                       
                                        case 3: LCD_ShowString(30,70,200,16,16,"4:Mode4");
                                               flag=4;break;

                                        case 4:        LCD_ShowString(30,70,200,16,16,"7:Mode7");
                                                flag7=1;
                                                mode7();break;
                                                                                                                                 
                                }               
                        }               
if(t==KEY1_PRES)        
{
                if(nu<7)
                                                nu++;
                                                else
                                                        nu=0;        
switch(nu)
                                {
                                        case 1: LCD_ShowString(30,50,200,16,16,"HUA XIAN");break;
                                        case 2: LCD_ShowString(30,70,200,16,16,"HUA 30CM"); setlong=30;mode2();break;
                                        case 3: LCD_ShowString(30,70,200,16,16,"HUA 40CM");setlong=40;mode2();break;
                                       
                                        case 4: LCD_ShowString(30,70,200,16,16,"HUA 50CM");setlong=50;mode2();break;

                                        case 5: LCD_ShowString(30,70,200,16,16,"HUA 60CM");setlong=60;mode2();break;
                                                                                                                                 
                                }                                                
                        }
               
if(t==WKUP_PRES)        
{
                if(n<7)
                                                n++;
                                                else
                                                        n=0;        
switch(n)
                                {
                                        case 1: LCD_ShowString(30,50,200,16,16,"HUA JIAO");break;
                                        case 2:        LCD_ShowString(30,70,200,16,16,"HUA 30C");                 
                  setang=30; mode3();break;        
                                       
                                        case 3: LCD_ShowString(30,70,200,16,16,"HUA 60C");                 
                  setang=60; mode3();break;        

                                        case 4: LCD_ShowString(30,70,200,16,16,"HUA 120C");                 
                  setang=120; mode3(); break;        
                                        case 5: LCD_ShowString(30,70,200,16,16,"HUA 240C");                 
                  setang=2400; mode3();break;        
                                        case 6: LCD_ShowString(30,50,200,16,16,"HUA YUAN");mode5();break;
                                                                                         
                                }               
                        }
                                
                }
        }

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

3

主题

23

帖子

0

精华

初级会员

Rank: 2

积分
86
金钱
86
注册时间
2020-5-2
在线时间
13 小时
 楼主| 发表于 2020-6-20 18:04:16 | 显示全部楼层
大佬们。看一下我这样写按键错了吗
回复

使用道具 举报

12

主题

3399

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
8679
金钱
8679
注册时间
2020-5-11
在线时间
4159 小时
发表于 2020-6-20 22:09:18 | 显示全部楼层
谁不满意啊?为啥?
专治疑难杂症
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2020-6-21 01:21:10 | 显示全部楼层
仿真找问题
回复

使用道具 举报

3

主题

23

帖子

0

精华

初级会员

Rank: 2

积分
86
金钱
86
注册时间
2020-5-2
在线时间
13 小时
 楼主| 发表于 2020-6-21 20:49:15 | 显示全部楼层

谢谢大佬。我还不会仿真里,我去学学。
回复

使用道具 举报

3

主题

23

帖子

0

精华

初级会员

Rank: 2

积分
86
金钱
86
注册时间
2020-5-2
在线时间
13 小时
 楼主| 发表于 2020-6-21 20:51:26 | 显示全部楼层
LcwSwust 发表于 2020-6-20 22:09
谁不满意啊?为啥?

谢谢大佬回复,如果按键没问题可能是别的代码部分卡死啦,我先去学一下仿真,看看卡死哪里啦
回复

使用道具 举报

12

主题

3399

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
8679
金钱
8679
注册时间
2020-5-11
在线时间
4159 小时
发表于 2020-6-21 20:54:46 | 显示全部楼层
我是看海 发表于 2020-6-21 20:51
谢谢大佬回复,如果按键没问题可能是别的代码部分卡死啦,我先去学一下仿真,看看卡死哪里啦

我的做法是按键与显示分开,按键处理甚至可以放入定时中断,只对变量进行操作,然后置个刷新标志,主循环读到刷新标志才进行显示处理,没必要变量加一次就刷新显示一次。
专治疑难杂症
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-17 13:31

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表