OpenEdv-开源电子网

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

原子哥,新手求助!

[复制链接]

1

主题

1

帖子

0

精华

新手入门

积分
4
金钱
4
注册时间
2017-5-28
在线时间
0 小时
发表于 2017-5-28 16:57:07 | 显示全部楼层 |阅读模式
我编写了一个程序用按键控制时间加减的,怎么不能加一呢,就是按下按键时间就跳很多。哪里不对呢,我买的是407
ErrorStatus RTC_Set_Time_hour(void)
{
         RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR, ENABLE);//使能PWR时钟
        PWR_BackupAccessCmd(ENABLE);       
        RTC_TimeTypeDef RTC_TimeTypeInitStructure;       
        RTC_TimeTypeInitStructure.RTC_Hours=RTC_TimeTypeInitStructure.RTC_Hours+1;
        return RTC_SetTime(RTC_Format_BIN,&RTC_TimeTypeInitStructure);
}
ErrorStatus RTC_Set_Time_min(void)
{
        RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR, ENABLE);//使能PWR时钟
        PWR_BackupAccessCmd(ENABLE);
                RTC_TimeTypeDef RTC_TimeTypeInitStructure;
        RTC_TimeTypeInitStructure.RTC_Minutes=RTC_TimeTypeInitStructure.RTC_Minutes+1;
        return RTC_SetTime(RTC_Format_BIN,&RTC_TimeTypeInitStructure);
}
extern         RTC_TimeTypeDef RTC_TimeStruct;
extern         RTC_DateTypeDef RTC_DateStruct;
u8 KEY_Scan(u8 mode)
{         
        static u8 key_up=1;//按键按松开标志
        if(mode)key_up=1;  //支持连按                  
        if(key_up&&(KEY0==0||KEY1==0||KEY2==0||WK_UP==1))
        {
                delay_ms(100);//去抖动
                key_up=0;
                if(KEY0==0) RTC_Set_Time_hour();
                else if(KEY1==0) RTC_Set_Time_min();
                else if(KEY2==0)return 3;
                else if(WK_UP==1)return 4;
        }else if(KEY0==1&&KEY1==1&&KEY2==1&&WK_UP==0)key_up=1;             
        return 0;// 无按键按下
}


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

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-8-20 16:46

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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