stm8l151RTC
哪位大侠知道rtc时间更新中断怎么用库函数配置???急救.... 在STMCubeMX里面有直接配置呀 帮顶了,只用过003 没RTC功能 我用过库,我用的寄存器void RTC_Init (void)
{
CLK_CRTCR = 0x10; //选择外部32K,不分频。打开RTC时钟的话,自动会选择LSE
RTC_WPR = 0xCA; //写保护
RTC_WPR = 0x53;
RTC_ISR1_INIT = 1; //进入初始化模式
while (RTC_ISR1_INITF == 0); //等待为1
RTC_CR1 = 0x20; //24小时格式,系统时钟=RTC时钟
RTC_CR2 = 0x00;
Display_Time.Second = 30;
RTC_TR1 = HEX2BCD (Display_Time.Second) & 0x7F; //秒
RTC_TR2 = HEX2BCD (Display_Time.Minute) & 0x7F; //分
RTC_TR3 = HEX2BCD (Display_Time.Hour) & 0x3F; //时
RTC_DR1 = HEX2BCD (Display_Time.Day) & 0x3F; //天
RTC_DR2 = HEX2BCD (Display_Time.Month) | (Display_Time.Week << 5);//周和月
RTC_DR3 = HEX2BCD (Display_Time.Year % 100); //年
RTC_ISR1_INIT = 0; //退出初始化模式
} 哦,我也没用中断 CLK_LSICmd(ENABLE);
while (CLK_GetFlagStatus(CLK_FLAG_LSIRDY) == RESET);
CLK_PeripheralClockConfig(CLK_Peripheral_RTC, ENABLE);//允许RTC时钟
CLK_RTCClockConfig(CLK_RTCCLKSource_LSI, CLK_RTCCLKDiv_2);//选择RTC时钟源LSI、2=19K
RTC_WakeUpCmd(DISABLE);//the wake up Unit must be disabled (if enabled) using RTC_WakeUpCmd(Disable).
RTC_WakeUpClockConfig(RTC_WakeUpClock_RTCCLK_Div16);//19k/16=1.1875KHz t=0.85ms
//RTC_ITConfig(RTC_IT_WUT, ENABLE);//开启中断
RTC_SetWakeUpCounter(3529);//设置RTC Weakup计算器初值3529*0.85=3000MS
ITC_SetSoftwarePriority(RTC_IRQn, ITC_PriorityLevel_3);//优先级
RTC_ITConfig(RTC_IT_WUT, ENABLE);
RTC_WakeUpCmd(ENABLE);
自己好好看看,然后再看看手册 围观一下 6楼的建议不错。 ding 围观一下
页:
[1]
2