历史上的今天
今天是:2025年07月10日(星期四)
2018年07月10日 | STM32,RTC周期性唤醒(wakeup)中断
2018-07-10 来源:eefocus
STM32L151:
int main(void)
{
HAL_Init();
SystemClock_Config();
MX_GPIO_Init();
LED_ON();
MX_DMA_Init();
MX_SPI1_Init();
MX_SPI2_Init();
MX_TIM3_Init();
MX_USART2_UART_Init();
//MX_IWDG_Init();
MX_RTC_Init();
MX_USART3_UART_Init();
MX_USART1_UART_Init();
printf("init complete...\r\n ");
LED_OFF();
unsigned int i=0;
while (1)
{
HAL_Delay(1000);
i++;
printf("i am alive...%d \r\n ",i);
}
}
static void MX_RTC_Init(void)
{
RTC_TimeTypeDef sTime;
RTC_DateTypeDef sDate;
/**Initialize RTC Only
*/
hrtc.Instance = RTC;
hrtc.Init.HourFormat = RTC_HOURFORMAT_24;
hrtc.Init.AsynchPrediv = 127;
hrtc.Init.SynchPrediv = 255;
hrtc.Init.OutPut = RTC_OUTPUT_DISABLE;
hrtc.Init.OutPutPolarity = RTC_OUTPUT_POLARITY_HIGH;
hrtc.Init.OutPutType = RTC_OUTPUT_TYPE_OPENDRAIN;
/*
在这个函数中的配置过程:1、禁止写保护寄存拿起:WPR = 0XCA..0X53
2、设置初始化模式,检查时钟源是否正常(LES\LSI),轮询ISR寄存器的第六位是否为1,为1就表示可以往下执行,否则就死了。
3、对CR寄存器操作,对选择RTC计数器的频率、是否输出时钟,时钟极性、等最后把ISR的第六位清0,表示退出初始化模式,还有加上写保护
*/
if (HAL_RTC_Init(&hrtc) != HAL_OK)
{
_Error_Handler(__FILE__, __LINE__);
}
/**Enable the WakeUp
*/
/*
//配置RTC CR寄存器的低两位,选择RTC计数器时钟的频率这里是1HZ,CR寄存器的第十四位使能wakeup唤醒中断,给wakeup定时器赋值为10,这里就是没过一秒定时器的值减一,当定时器减到0的时候就是是ISR寄存器的相应标志位置1并且中断挂起寄存器也会置1 EXTI->PR,所以写中断服务程序的时候需要清除ISR的标志位还有PR的标志位。在当前的函数配置过程:
1、写保护破除
2、请0CR中的WUTE位,禁止唤醒定时器
3、选择1HZ的时钟,使能中断
4、开启中断线20-----对应的就是RTC唤醒,中断线17----对应RTC闹钟
这里RTC_WAKEUPCLOCK_CK_SPRE_16BITS是设置CR寄存器中的低三位,唤醒时钟选择,这里选择1HZ,10表示工作10S后进入唤醒中断
*/
if (HAL_RTCEx_SetWakeUpTimer_IT(&hrtc, 10, RTC_WAKEUPCLOCK_CK_SPRE_16BITS) != HAL_OK)
{
_Error_Handler(__FILE__, __LINE__);
}
}
史海拾趣
|
Microchip今天荣幸地宣布她的第一款专门为中国市场设计的C编译器!这款全功能高性能的PICC ME16 C编译器是专为Microchip的PIC16C57,PIC16C67,PIC16F77和PIC16F877这四款高性能单片机而设计的。软件包含在一张CD-ROM上,并配有12页的全中文快速使 ...… 查看全部问答> |
|
A/D转换器的主要技术指标有转换精度、转换速度等。选择A/D转换器时,除考虑这两项技术指标外,还应注意满足其输入电压的范围、输出数字的编码、工作温度范围和电压稳定度等方面的要求… 查看全部问答> |
|
胆机音色圆润、透明,发声自然、甜美、真挚,久听不倦,富于人性化色彩。在构建和谐、美好的生活中,胆机已成为音响爱好者良伴,也正成为一种时尚。 在胆机中,尤以单端甲类胆机音质最佳。以300B、845胆构成的单端甲类胆机成为胆机 ...… 查看全部问答> |
|
有没有人用过real6410开发板,现在碰到几个问题希望有经验的玩家能给点建议。 1 usb 连接不上 驱动也装了dnw就是没反应 2 sd卡制作uboot时候出啦点小问题 找不着sd卡,后来用了别人机器好不容易弄制作啦uboot 结果加载uboot后串口不出任何信息。 ...… 查看全部问答> |
|
在写一个普通IO口模拟串口进行无线收发数据的程序,无线模块有一根data线和一个TX/RX选择线,可以进行半双工传输,因为刚接触ARM,虽然看了C51IO口模拟串口的程序,编写起来还是感觉比较吃力,求高手指点!!!… 查看全部问答> |




