(坑1#)STM32CUBEMX生成含有RTC .c/.h文件对的工程模板,编译出错。
错误提示:
../Src/rtc.c(100): warning: #223-D: function "LL_PWR_EnableBkUpAccess" declared implicitly
LL_PWR_EnableBkUpAccess();
../Src/rtc.c(102): warning: #223-D: function "LL_APB1_GRP1_EnableClock" declared implicitly
LL_APB1_GRP1_EnableClock(LL_APB1_GRP1_PERIPH_BKP);
../Src/rtc.c(102): error: #20: identifier "LL_APB1_GRP1_PERIPH_BKP" is undefined
LL_APB1_GRP1_EnableClock(LL_APB1_GRP1_PERIPH_BKP);
../Src/rtc.c: 2 warnings, 1 error
错误代码段:
void HAL_RTC_MspInit(RTC_HandleTypeDef* rtcHandle)
{
if(rtcHandle->Instance==RTC)
{
/* USER CODE BEGIN RTC_MspInit 0 */
/* USER CODE END RTC_MspInit 0 */
LL_PWR_EnableBkUpAccess();
/* Enable BKP CLK enable for backup registers */
LL_APB1_GRP1_EnableClock(LL_APB1_GRP1_PERIPH_BKP);
/* RTC clock enable */
__HAL_RCC_RTC_ENABLE();
/* USER CODE BEGIN RTC_MspInit 1 */
/* USER CODE END RTC_MspInit 1 */
}
}
错误原因:
这是STM32CUBEMX在生成含有 .c/.h文件对的模板时引用代码错误造成的。如不选择生成.c/.h文件对的话则编译正常。
解决办法:
手动修正代码
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 */
}
}
注:模板更新后每次都要手动修改。官方已收到BUG报告,正在处理中。
上一篇:【STM32CubeMX】4,基于CubeMX的串口调试
下一篇:STM32CUBEMX——HAL库使用注意事项
设计资源 培训 开发板 精华推荐
- NCP1615GEVB,具有电流控制频率折返评估板的高压 PFC 控制器
- EVAL-ADF7012EB5,ADF7012 评估套件,一种支持 FSK、GFSK、ASK 的 ISM 频段发射器
- DN05096/D,使用 FAN6605 实现家用电器的多输出电源参考设计
- 使用 Analog Devices 的 LT1587CM-3.6 的参考设计
- TC78B016FTG 三相无刷直流电机驱动器评估板
- 使用 ROHM Semiconductor 的 BU4935 的参考设计
- AM2G-4807DH30Z ±7.2V 2 瓦 DC-DC 转换器的典型应用
- 遥控小车
- 婴儿监护器
- RT9030 150mA、低输入电压、低压差、低噪声超快速无旁路电容CMOS LDO稳压器的典型应用