本文整理汇总了C++中RTC_ClearFlag函数的典型用法代码示例。如果您正苦于以下问题:C++ RTC_ClearFlag函数的具体用法?C++ RTC_ClearFlag怎么用?C++ RTC_ClearFlag使用的例子?那么, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了RTC_ClearFlag函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: RTC_Alarm_IRQHandler
void RTC_Alarm_IRQHandler()
{
if(RTC_GetITStatus(RTC_IT_ALRA) != RESET)
{
//RTC_AlarmCmd(RTC_Alarm_A, ENABLE);
PWR_RTCAccessCmd(ENABLE); // Доступ в RTC
RTC_ClearITPendingBit(RTC_IT_ALRA);
RTC_ClearFlag(RTC_FLAG_ALRAF);
PWR_RTCAccessCmd(DISABLE);
EXTI_ClearITPendingBit(EXTI_Line17);
//OLED_DrawString_fast(0,0,"alarm",10);
}
/////////////////////////?????????????????????????????????????????????????????????????????????????????????????
if(RTC_GetFlagStatus(RTC_FLAG_ALRAF) != RESET)
{
PWR_RTCAccessCmd(ENABLE);
RTC_ClearFlag(RTC_FLAG_ALRAF);
PWR_RTCAccessCmd(DISABLE);
//f_WakeupToAlarm=1;
curent_cmd = 5;
}
/////////////////////////
}
示例2: EnterSTANDBYMode
/**
* @brief Enters STANDBY mode, RTC Alarm within 3 second or an external RESET
* will wake-up the system from STANDBY
* @param None
* @retval None
*/
static void EnterSTANDBYMode(void)
{
RTC_AlarmTypeDef RTC_AlarmStructure;
RTC_TimeTypeDef RTC_TimeStructure;
/* Disable the Alarm A */
RTC_AlarmCmd(RTC_Alarm_A, DISABLE);
/* Get the current time */
RTC_GetTime(RTC_Format_BIN, &RTC_TimeStructure);
/* Set the alarm to current time + 3s */
RTC_AlarmStructure.RTC_AlarmTime.RTC_H12 = RTC_TimeStructure.RTC_H12;
RTC_AlarmStructure.RTC_AlarmTime.RTC_Hours = RTC_TimeStructure.RTC_Hours;
RTC_AlarmStructure.RTC_AlarmTime.RTC_Minutes = RTC_TimeStructure.RTC_Minutes;
RTC_AlarmStructure.RTC_AlarmTime.RTC_Seconds = (RTC_TimeStructure.RTC_Seconds + 0x3) % 60;
RTC_AlarmStructure.RTC_AlarmDateWeekDay = 31;
RTC_AlarmStructure.RTC_AlarmDateWeekDaySel = RTC_AlarmDateWeekDaySel_Date;
RTC_AlarmStructure.RTC_AlarmMask = RTC_AlarmMask_DateWeekDay | RTC_AlarmMask_Hours | RTC_AlarmMask_Minutes;
RTC_SetAlarm(RTC_Format_BIN, RTC_Alarm_A, &RTC_AlarmStructure);
/* Enable RTC Alarm A Interrupt: this Interrupt will wake-up the system from
STANDBY mode (RTC Alarm IT not enabled in NVIC) */
RTC_ITConfig(RTC_IT_ALRA, ENABLE);
/* Enable the Alarm A */
RTC_AlarmCmd(RTC_Alarm_A, ENABLE);
/* Clear RTC Alarm Flag */
RTC_ClearFlag(RTC_FLAG_ALRAF);
/* Request to enter STANDBY mode (Wake Up flag is cleared in PWR_EnterSTANDBYMode function) */
PWR_EnterSTANDBYMode();
}
示例3: TAMP_STAMP_IRQHandler
/**
* @brief This function handles RTC Tamper and Time Stamp interrupts requests.
* @param None
* @retval None
*/
void TAMP_STAMP_IRQHandler(void)
{
if(RTC_GetFlagStatus(RTC_FLAG_TAMP1F) != RESET)
{
/* Tamper 1 detection event occurred */
/* Check if RTC Backup Data registers are cleared */
if(IsBackupRegReset() == 0)
{
/* OK, RTC Backup Data registers are reset as expected */
/* Toggle LED2 */
STM_EVAL_LEDToggle(LED2);
}
else
{
/* RTC Backup Data registers are not reset */
/* Toggle LED4 */
STM_EVAL_LEDToggle(LED4);
}
/* Clear Tamper 1 pin Event pending flag */
RTC_ClearFlag(RTC_FLAG_TAMP1F);
/* Disable Tamper pin 1 */
RTC_TamperCmd(RTC_Tamper_1, DISABLE);
/* Enable Tamper pin */
RTC_TamperCmd(RTC_Tamper_1, ENABLE);
}
}
示例4: test
void test(void)
{
//Reads data from the specified RTC Backup data Register.
//入侵检测
if (RTC_ReadBackupRegister(RTC_BKP_DR0) != 0x32F2)
{
/* RTC configuration */
RTC_Config();
/* Configure the time&date register */
RTC_TimeRegulate();
}
else
{
/* Enable the PWR clock */
RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR, ENABLE);
/* Allow access to RTC */
PWR_BackupAccessCmd(ENABLE);
/* Wait for RTC APB registers synchronisation */
RTC_WaitForSynchro();
/* Clear the RTC Alarm Flag */
RTC_ClearFlag(RTC_FLAG_ALRAF);
/* Clear the EXTI Line 17 Pending bit (Connected internally to RTC Alarm) */
EXTI_ClearITPendingBit(EXTI_Line17);
}
while (1);
}
示例5: HAL_RTC_Set_UnixAlarm
void HAL_RTC_Set_UnixAlarm(time_t value)
{
RTC_AlarmTypeDef RTC_AlarmStructure;
time_t alarm_time = HAL_RTC_Get_UnixTime() + value;
struct tm *alarm_time_tm;
alarm_time_tm = localtime(&alarm_time);
/* Disable the Alarm A */
RTC_AlarmCmd(RTC_Alarm_A, DISABLE);
RTC_AlarmStructure.RTC_AlarmTime.RTC_Hours = alarm_time_tm->tm_hour;
RTC_AlarmStructure.RTC_AlarmTime.RTC_Minutes = alarm_time_tm->tm_min;
RTC_AlarmStructure.RTC_AlarmTime.RTC_Seconds = alarm_time_tm->tm_sec;
RTC_AlarmStructure.RTC_AlarmDateWeekDay = alarm_time_tm->tm_mday;
RTC_AlarmStructure.RTC_AlarmDateWeekDaySel = RTC_AlarmDateWeekDaySel_Date;
RTC_AlarmStructure.RTC_AlarmMask = RTC_AlarmMask_None;
/* Configure the RTC Alarm A register */
RTC_SetAlarm(RTC_Format_BIN, RTC_Alarm_A, &RTC_AlarmStructure);
/* Enable the RTC Alarm A Interrupt */
RTC_ITConfig(RTC_IT_ALRA, ENABLE);
/* Enable the Alarm A */
RTC_AlarmCmd(RTC_Alarm_A, ENABLE);
/* Clear RTC Alarm Flag */
RTC_ClearFlag(RTC_FLAG_ALRAF);
}
示例6: RTC_TamperConfig
/**
* @brief RTC Tamper Configuration..
* @param None
* @retval None
*/
static void RTC_TamperConfig(void)
{
EXTI_InitTypeDef EXTI_InitStructure;
NVIC_InitTypeDef NVIC_InitStructure;
/* EXTI configuration *********************************************************/
EXTI_ClearITPendingBit(EXTI_Line19);
EXTI_InitStructure.EXTI_Line = EXTI_Line19;
EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising;
EXTI_InitStructure.EXTI_LineCmd = ENABLE;
EXTI_Init(&EXTI_InitStructure);
/* Enable RTC_IRQn */
NVIC_InitStructure.NVIC_IRQChannel = RTC_IRQn;
NVIC_InitStructure.NVIC_IRQChannelPriority = 0;
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure);
/* determines the number of active pulse for the specific level */
RTC_TamperFilterConfig(RTC_TamperFilter_2Sample);
/* Determines the frequency at which each of the tamper inputs are sampled */
RTC_TamperSamplingFreqConfig(RTC_TamperSamplingFreq_RTCCLK_Div32768);
RTC_TamperPullUpCmd(DISABLE);
/* Select the tamper 1 with High level */
RTC_TamperTriggerConfig(RTC_Tamper_1, RTC_TamperTrigger_LowLevel );
/* Clear tamper 1 falg */
RTC_ClearFlag(RTC_FLAG_TAMP1F);
}
示例7: TM_RTC_DisableAlarm
void TM_RTC_DisableAlarm(TM_RTC_Alarm_t Alarm) {
switch (Alarm) {
case TM_RTC_Alarm_A:
/* Disable Alarm A */
RTC_AlarmCmd(RTC_Alarm_A, DISABLE);
/* Disable Alarm A interrupt */
RTC_ITConfig(RTC_IT_ALRA, DISABLE);
/* Clear Alarm A pending bit */
RTC_ClearFlag(RTC_IT_ALRA);
break;
case TM_RTC_Alarm_B:
/* Disable Alarm B */
RTC_AlarmCmd(RTC_Alarm_B, DISABLE);
/* Disable Alarm B interrupt */
RTC_ITConfig(RTC_IT_ALRB, DISABLE);
/* Clear Alarm B pending bit */
RTC_ClearFlag(RTC_IT_ALRB);
break;
default:
break;
}
/* Clear RTC Alarm pending bit */
EXTI_ClearITPendingBit(EXTI_Line17);
/* Configure EXTI 17 as interrupt */
EXTI_InitStruct.EXTI_Line = EXTI_Line17;
EXTI_InitStruct.EXTI_Mode = EXTI_Mode_Interrupt;
EXTI_InitStruct.EXTI_Trigger = EXTI_Trigger_Rising;
EXTI_InitStruct.EXTI_LineCmd = ENABLE;
/* Initialite Alarm EXTI interrupt */
EXTI_Init(&EXTI_InitStruct);
/* Configure the RTC Alarm Interrupt */
NVIC_InitStruct.NVIC_IRQChannel = RTC_Alarm_IRQn;
NVIC_InitStruct.NVIC_IRQChannelPreemptionPriority = RTC_PRIORITY;
NVIC_InitStruct.NVIC_IRQChannelSubPriority = RTC_ALARM_SUBPRIORITY;
NVIC_InitStruct.NVIC_IRQChannelCmd = ENABLE;
/* Initialize RTC Alarm Interrupt */
NVIC_Init(&NVIC_InitStruct);
}
示例8: main
/*******************************************************************************
* Function Name : main
* Description : Main program.
* Input : None
* Output : None
* Return : None
*******************************************************************************/
int main(void)
{
#ifdef DEBUG
debug();
#endif
/* Clock configuration */
RCC_Configuration();
/* Enable PWR and BKP clock */
RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR | RCC_APB1Periph_BKP, ENABLE);
/* GPIO configuration */
GPIO_Configuration();
/* Configure EXTI Line to generate an interrupt on falling edge */
EXTI_Configuration();
/* Configure RTC clock source and prescaler */
RTC_Configuration();
/* NVIC configuration */
NVIC_Configuration();
/* Configure the SysTick to generate an interrupt each 1 millisecond */
SysTick_Configuration();
/* Turn on led connected to GPIO_LED Pin6 */
GPIO_SetBits(GPIO_LED, GPIO_Pin_6);
while (1)
{
/* Insert 1.5 second delay */
Delay(1500);
/* Wait till RTC Second event occurs */
RTC_ClearFlag(RTC_FLAG_SEC);
while(RTC_GetFlagStatus(RTC_FLAG_SEC) == RESET);
/* Alarm in 3 second */
RTC_SetAlarm(RTC_GetCounter()+ 3);
/* Wait until last write operation on RTC registers has finished */
RTC_WaitForLastTask();
/* Turn off led connected to GPIO_LED Pin6 */
GPIO_ResetBits(GPIO_LED, GPIO_Pin_6);
/* Request to enter STOP mode with regulator in low power mode*/
PWR_EnterSTOPMode(PWR_Regulator_LowPower, PWR_STOPEntry_WFI);
/* At this stage the system has resumed from STOP mode -------------------*/
/* Turn on led connected to GPIO_LED Pin6 */
GPIO_SetBits(GPIO_LED, GPIO_Pin_6);
/* Configures system clock after wake-up from STOP: enable HSE, PLL and select
PLL as system clock source (HSE and PLL are disabled in STOP mode) */
SYSCLKConfig_STOP();
}
}
示例9: main
/**
* @brief Main program.
* @param None
* @retval None
*/
int main(void)
{
/* Setup the microcontroller system. Initialize the Embedded Flash Interface,
initialize the PLL and update the SystemFrequency variable. */
SystemInit();
/* Initialize LEDs and Key Button mounted on STM3210X-EVAL board */
STM_EVAL_LEDInit(LED1);
STM_EVAL_LEDInit(LED2);
STM_EVAL_LEDInit(LED3);
STM_EVAL_PBInit(Button_KEY, Mode_EXTI);
/* Enable PWR and BKP clock */
RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR | RCC_APB1Periph_BKP, ENABLE);
/* Configure EXTI Line to generate an interrupt on falling edge */
EXTI_Configuration();
/* Configure RTC clock source and prescaler */
RTC_Configuration();
/* NVIC configuration */
NVIC_Configuration();
/* Configure the SysTick to generate an interrupt each 1 millisecond */
SysTick_Configuration();
/* Turn on LED1 */
STM_EVAL_LEDOn(LED1);
while (1)
{
/* Insert 1.5 second delay */
Delay(1500);
/* Wait till RTC Second event occurs */
RTC_ClearFlag(RTC_FLAG_SEC);
while(RTC_GetFlagStatus(RTC_FLAG_SEC) == RESET);
/* Alarm in 3 second */
RTC_SetAlarm(RTC_GetCounter()+ 3);
/* Wait until last write operation on RTC registers has finished */
RTC_WaitForLastTask();
/* Turn off LED1 */
STM_EVAL_LEDOff(LED1);
/* Request to enter STOP mode with regulator in low power mode*/
PWR_EnterSTOPMode(PWR_Regulator_LowPower, PWR_STOPEntry_WFI);
/* At this stage the system has resumed from STOP mode -------------------*/
/* Turn on LED1 */
STM_EVAL_LEDOn(LED1);
/* Configures system clock after wake-up from STOP: enable HSE, PLL and select
PLL as system clock source (HSE and PLL are disabled in STOP mode) */
SYSCLKConfig_STOP();
}
}
示例10: RTC_IRQHandler
/*******************************************************************************
* Function Name : RTC_IRQHandler
* Description : This function handles RTC global interrupt request.
* Input : None
* Output : None
* Return : None
*******************************************************************************/
void RTC_IRQHandler(void)
{
if((GPIOC->IDR)&(0x00001000)) { GPIOC->BRR |= 0x00001000; }
else { GPIOC->BSRR |= 0x00001000; }
RTC_ClearFlag(RTC_IT_SEC);
}
示例11: RTC_WKUP_IRQHandler
void RTC_WKUP_IRQHandler(void)
{
if (RTC_GetITStatus(RTC_IT_WUT) != RESET) {
EXTI_ClearITPendingBit(EXTI_Line22);
RTC_ClearITPendingBit(RTC_IT_WUT);
RTC_ClearFlag(RTC_FLAG_WUTF);
}
}
示例12: rtc_timer_start
void rtc_timer_start(u32 alarmValue)
{
//enable BKP and PWR, Clock
RCC_APB1PeriphClockCmd(RCC_APB1Periph_BKP|RCC_APB1Periph_PWR , ENABLE);
// RTC clock source configuration
PWR_BackupAccessCmd(ENABLE); //Allow access to BKP Domain
RCC_LSEConfig(RCC_LSE_ON); //Enable LSE OSC
while(RCC_GetFlagStatus(RCC_FLAG_LSERDY)==RESET); //Wait till LSE is ready
RCC_RTCCLKConfig(RCC_RTCCLKSource_LSE); //Select the RTC Clock Source
RCC_RTCCLKCmd(ENABLE); //enable RTC
// RTC configuration
// Wait for RTC APB registers synchronisation
RTC_WaitForSynchro();
RTC_SetPrescaler(0); //Set the RTC time base to 30.5us
RTC_WaitForLastTask(); //Wait until last write operation on RTC registers has finished
//Set the RTC time counter to 0
RTC_SetCounter(0);
RTC_WaitForLastTask();
// Set the RTC time alarm(the length of slot)
RTC_SetAlarm(alarmValue);
RTC_WaitForLastTask();
//interrupt when reach alarm value
RTC_ClearFlag(RTC_IT_ALR);
RTC_ITConfig(RTC_IT_ALR, ENABLE);
//Configures EXTI line 17 to generate an interrupt on rising edge(alarm interrupt to wakeup board)
EXTI_ClearITPendingBit(EXTI_Line17);
EXTI_InitTypeDef EXTI_InitStructure;
EXTI_InitStructure.EXTI_Line = EXTI_Line17;
EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising;
EXTI_InitStructure.EXTI_LineCmd = ENABLE;
EXTI_Init(&EXTI_InitStructure);
//Configure RTC global interrupt:
//Configure NVIC: Preemption Priority = 1 and Sub Priority = 1
NVIC_InitTypeDef NVIC_InitStructure;
NVIC_InitStructure.NVIC_IRQChannel = RTC_IRQn;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure);
//Configure RTC Alarm interrupt:
//Configure NVIC: Preemption Priority = 0 and Sub Priority = 1
NVIC_InitStructure.NVIC_IRQChannel = RTCAlarm_IRQn;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure);
}
示例13: clock_ini
/****************************************************************************
* 名 称:void clock_ini(void)
* 功 能:时钟初始化函数
* 入口参数:无
* 出口参数:无
* 说 明:
* 调用方法:
****************************************************************************/
void clock_ini(void)
{
#if defined (STOP_Mode)
if(BKP_CheckLOCK_RTC() != BKP_RTC_Flag){
RTC_Configuration();
RTC_InitStructure.RTC_AsynchPrediv = AsynchPrediv;
RTC_InitStructure.RTC_SynchPrediv = SynchPrediv;
RTC_InitStructure.RTC_HourFormat = RTC_HourFormat_24;
while(RTC_Init(&RTC_InitStructure) == ERROR) {}
Set_Time(time);
BKP_LOCK_RTC();
}else{
while(RCC_GetFlagStatus(RCC_FLAG_PORRST) == RESET) {}
while(RCC_GetFlagStatus(RCC_FLAG_PINRST) == RESET) {}
RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR, ENABLE);
PWR_RTCAccessCmd(ENABLE);
RTC_WaitForSynchro();
}
RTC_Alarm_Exit();
RTC_NVIC_Configuration();
RTC_ClearFlag(RTC_FLAG_ALRAF);
PWR_ClearFlag(PWR_FLAG_WU);
#elif defined (TANDBY_Mode)
RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR, ENABLE);
PWR_RTCAccessCmd(ENABLE);
PWR_ClearFlag(PWR_FLAG_WU);
if(PWR_GetFlagStatus(PWR_FLAG_SB) != RESET) {
PWR_ClearFlag(PWR_FLAG_SB);
RTC_WaitForSynchro();
}else {
RTC_Configuration();
RTC_InitStructure.RTC_AsynchPrediv = AsynchPrediv;
RTC_InitStructure.RTC_SynchPrediv = SynchPrediv;
RTC_InitStructure.RTC_HourFormat = RTC_HourFormat_24;
while(RTC_Init(&RTC_InitStructure) == ERROR) {}
Set_Time(time);
RTC_ClearFlag(RTC_FLAG_ALRAF);
}
#endif
}
示例14: RtcClearStatus
static void RtcClearStatus( void )
{
/* Clear RTC Alarm Flag */
RTC_ClearFlag(RTC_FLAG_ALRAF);
/* Enable RTC Alarm A Interrupt */
RTC_ITConfig( RTC_IT_ALRA, DISABLE );
/* Enable the Alarm A */
RTC_AlarmCmd( RTC_Alarm_A, DISABLE );
}
示例15: RTC_WKUP_IRQHandler
void RTC_WKUP_IRQHandler(void)
{
if(RTC_GetITStatus(RTC_IT_WUT) != RESET) {
EXTI_ClearITPendingBit(EXTI_Line20); //OK
PWR_RTCAccessCmd(ENABLE);
RTC_ClearITPendingBit(RTC_IT_WUT);
RTC_ClearFlag(RTC_FLAG_WUTF);
PWR_RTCAccessCmd(DISABLE);
l++;
printf("RTC Interrupt executed: %d \n\r", l);
}
}