[其他ST产品] STM32 RTC秒中断——基于LL库

[复制链接]
658|4
 楼主| 梵蒂冈是神uy 发表于 2022-12-25 13:41 | 显示全部楼层 |阅读模式
STM32L0系列

测试基于L053

初始化
  1. void MX_RTC_Init(void)
  2. {
  3.   LL_RTC_InitTypeDef RTC_InitStruct = {0};

  4.   /* Peripheral clock enable */
  5.   LL_RCC_EnableRTC();

  6.   /* RTC interrupt Init */
  7.   NVIC_SetPriority(RTC_IRQn, 0);
  8.   NVIC_EnableIRQ(RTC_IRQn);

  9.   /** Initialize RTC and set the Time and Date
  10.   */
  11.   RTC_InitStruct.HourFormat = LL_RTC_HOURFORMAT_24HOUR;
  12.   RTC_InitStruct.AsynchPrescaler = 127;
  13.   RTC_InitStruct.SynchPrescaler = 255;
  14.   LL_RTC_Init(RTC, &RTC_InitStruct);
  15.   /** Initialize RTC and set the Time and Date
  16.   */
  17.   /** Enable the WakeUp
  18.   */
  19.   LL_RTC_DisableWriteProtection(RTC);
  20.   LL_RTC_WAKEUP_SetClock(RTC, LL_RTC_WAKEUPCLOCK_CKSPRE);
  21.   LL_EXTI_EnableIT_0_31(LL_EXTI_LINE_20);
  22.   LL_EXTI_EnableRisingTrig_0_31(LL_EXTI_LINE_20);
  23.   LL_RTC_WAKEUP_Enable(RTC);
  24.   LL_RTC_EnableWriteProtection(RTC);
  25. }



评论

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/Roomen0/article/details/114519978 ———————————————— 版权声明:本文为CSDN博主「Logan Li」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/Roomen0/article/details/114  发表于 2022-12-25 13:45
 楼主| 梵蒂冈是神uy 发表于 2022-12-25 13:45 | 显示全部楼层
中断回调
  1. void RTC_IRQHandler(void)
  2. {
  3.   /* USER CODE BEGIN RTC_IRQn 0 */
  4.   HAL_GPIO_TogglePin(LD2_GPIO_Port, LD2_Pin);
  5.   /* USER CODE END RTC_IRQn 0 */

  6.   /* USER CODE BEGIN RTC_IRQn 1 */
  7.   LL_RTC_ClearFlag_WUT(RTC);//清除秒中断事件
  8.   LL_EXTI_ClearFlag_0_31(LL_EXTI_LINE_20);//清除中断线标志位
  9.   /* USER CODE END RTC_IRQn 1 */
  10. }
 楼主| 梵蒂冈是神uy 发表于 2022-12-25 13:46 | 显示全部楼层
话外篇
维护老项目的时候调试半天,就是不能触发RTC秒钟断,最终经过查找,发现是HAL的MSP Init被删掉了。。。
在stm32l0xx_hal_msp.c中添加如下代码,RTC功能实现:
 楼主| 梵蒂冈是神uy 发表于 2022-12-25 13:46 | 显示全部楼层
  1. void HAL_MspInit(void)
  2. {
  3.   /* USER CODE BEGIN MspInit 0 */

  4.   /* USER CODE END MspInit 0 */

  5.   __HAL_RCC_SYSCFG_CLK_ENABLE();
  6.   __HAL_RCC_PWR_CLK_ENABLE();

  7.   /* System interrupt init*/

  8.   /* USER CODE BEGIN MspInit 1 */

  9.   /* USER CODE END MspInit 1 */
  10. }
您需要登录后才可以回帖 登录 | 注册

本版积分规则

53

主题

735

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部