我编写了一个程序用按键控制时间加减的,怎么不能加一呢,就是按下按键时间就跳很多。哪里不对呢,我买的是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;// 无按键按下
}
一周热门 更多>