这几天刚开始学习RT-thread ,准备边学习 边把之前的裸机项目移植一下,找了一个stm32f103的bsp 用env的方式建了一个项目 ,把RTC使能之后 烧到板子里 出现了一个rtc未配置的提示, 我用date指令配置了一下 重新复位了一下发现还是出现这个提示 并且年月日没有保存上
读了下drv_rtc.c里的代码 看到这里在设置时间时把年月日都放到HAL_RTCEx_BKUPWrite()里保存 ,我代码后面读了一下BKP里的数据发现值没有写进去,看了下之前的裸机项目 在操作BKP时打开了PWR 、BKP时钟跟使能后备寄存器访问,于是我在加入了这三条语句,烧录进去之后发现就保存上年月日了。
同时发现F103的几个BSP的RTC里 用的都是以下代码
本来以为可能是别人在写这个包的时候 忘打开pwr与BKP了 后来发现是我没有在CubeMX里配置RTC(只用的ENV配置),在CubeMX里打开RTC后 会自动在stm32f1xx_hal_msp.c中增加一个HAL_RTC_MspInit()函数 里面有打开pwr时钟、BKR时钟使能后备寄存器访问操作
欢迎你提交PR。