在rtc.c文件中对RTC进行初始化Cube的BUG:
    需要将函数void HAL_RTC_MspInit(RTC_HandleTypeDef* rtcHandle)  (这个调用的是LL库中的函数)
    替换成函数void HAL_RTC_MspInit(RTC_HandleTypeDef* hrtc)

1 配置pinout

STM32CubeMX配置STM32F103-RTC遇到的问题

2 时钟配置

STM32CubeMX配置STM32F103-RTC遇到的问题

3 生成工程文件

STM32CubeMX配置STM32F103-RTC遇到的问题

为了使生成的代码层次分明一些,习惯性我通常是把这个选项勾选上的,不过这次工程代码在RTC初始化上莫名调用了两句引用LL库的语句。

STM32CubeMX配置STM32F103-RTC遇到的问题

结果是编译不通过,后来把这个选项去掉。代码则编译正常了。

STM32CubeMX配置STM32F103-RTC遇到的问题

STM32CubeMX配置STM32F103-RTC遇到的问题

 

后期试了一下在第一种方式下把出错的那两条语句替换掉后,程序也可以编译正常,算是Cube的一个小BUG。

替换程序,这是在F4Cube生成的代码中找到的。

void HAL_RTC_MspInit(RTC_HandleTypeDef* hrtc)
{

  if(hrtc->Instance==RTC)
  {
  /* USER CODE BEGIN RTC_MspInit 0 */

  /* USER CODE END RTC_MspInit 0 */
    HAL_PWR_EnableBkUpAccess();
    /* Enable BKP CLK enable for backup registers */
    __HAL_RCC_BKP_CLK_ENABLE();
    /* Peripheral clock enable */
    __HAL_RCC_RTC_ENABLE();
  /* USER CODE BEGIN RTC_MspInit 1 */

  /* USER CODE END RTC_MspInit 1 */
  }

}

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-09-26
  • 2022-12-23
  • 2021-10-31
  • 2021-04-28
  • 2021-04-08
  • 2021-07-26
猜你喜欢
  • 2021-12-15
  • 2021-12-17
  • 2021-10-28
  • 2021-05-15
  • 2021-07-09
  • 2021-06-07
  • 2022-12-23
相关资源
相似解决方案