微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 简单初始化STM32的RTC

简单初始化STM32的RTC

时间:12-03 来源:互联网 点击:

I和WFE等低功耗模式的影响。

/*******************************************************************************
* Function Name : RTC_IRQHandler RTC中断
* Description :
* Input : None
* Output : None
* Return : None
*******************************************************************************/
extern volatile bool Sec;//1S标志
void RTC_IRQHandler(void)
{
if(RTC_GetITStatus(RTC_IT_SEC) != RESET)//RTC发生了秒中断(也有可能是溢出或者闹钟中断)

/*RTC_IT_OW溢出中断/RTC_IT_ALR闹钟中断/RTC_IT_SEC秒中断*/
{
RTC_ClearITPendingBit(RTC_IT_SEC);
Sec=TRUE;

//以免RTC计数溢出,这里限制了RTC计数值的大小.0x0001517f实际就是一天的秒数
if(RTC_GetCounter() >= 0x0001517f)
{
RTC_SetCounter(0x0);

RTC_WaitForLastTask();
}
}
}

#include"STM32Lib\\stm32f10x.h"
#include"hal.h"

volatilebool Sec=FALSE;

int main(void)
{
ChipHalInit();//片内硬件初始化
ChipOutHalInit();//片外硬件初始化

TestRtc();//测试RTC
for(;;)
{
if(Sec==TRUE)
{
Sec=FALSE;
GPIOA->ODR^=GPIO_Pin_8;//闪灯
}
}
}

最简单 最基层的CRT写好了..........其实还有好多很酷的功能 比如是否掉电重启 是否是SeSET 复位 等 应该在CRT前 都检测好........

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top