RTC
STM32F103C8T6基于HAL库制作RTC时钟_stm32f103c8t6 rtc-CSDN博客
【STM32】HAL库 STM32CubeMX教程十三---RTC时钟_基于stm32f407hal库的rtc实时时钟-CSDN博客
方案
有三个时钟,我们选择LSE时钟(前两个时钟是受VDD影响的,而且LSI不稳定有温漂)
有两种退出待机(待机唤醒)方式1,RTC_Alarm闹钟时间2,WKUPpin唤醒引脚
在有Vbat(纽扣电池CR1220)的情况下,Vdd掉电RTC仍然正常工作
时钟配置
外设配置
如果出现了时间走时不准(比如2-3s 秒加1),时间不走(时间不加)可能是因为干扰问题,不一定软件有关,可以把单片机拿起来看看时间的走势,或者换个地方试试(亲测有效)。
/*设置系统时间*/
HAL_StatusTypeDef HAL_RTC_SetTime(RTC_HandleTypeDef *hrtc, RTC_TimeTypeDef *sTime, uint32_t Format)
/*读取系统时间*/
HAL_StatusTypeDef HAL_RTC_GetTime(RTC_HandleTypeDef *hrtc, RTC_TimeTypeDef *sTime, uint32_t Format)
/*设置系统日期*/
HAL_StatusTypeDef HAL_RTC_SetDate(RTC_HandleTypeDef *hrtc, RTC_DateTypeDef *sDate, uint32_t Format)
/*读取系统日期*/
HAL_StatusTypeDef HAL_RTC_GetDate(RTC_HandleTypeDef *hrtc, RTC_DateTypeDef *sDate, uint32_t Format)
/*启动报警功能*/
HAL_StatusTypeDef HAL_RTC_SetAlarm(RTC_HandleTypeDef *hrtc, RTC_AlarmTypeDef *sAlarm, uint32_t Format)
/*设置报警中断*/
HAL_StatusTypeDef HAL_RTC_SetAlarm_IT(RTC_HandleTypeDef *hrtc, RTC_AlarmTypeDef *sAlarm, uint32_t Format)
/*报警时间回调函数*/
__weak void HAL_RTC_AlarmAEventCallback(RTC_HandleTypeDef *hrtc)
/*写入后备储存器*/
void HAL_RTCEx_BKUPWrite(RTC_HandleTypeDef *hrtc, uint32_t BackupRegister, uint32_t Data)
/*读取后备储存器*/
uint32_t HAL_RTCEx_BKUPRead(RTC_HandleTypeDef *hrtc, uint32_t BackupRegister
既有读取时间函数又有设置时间函数
读取时间函数可以获取当前值,而设置时间函数而更新或矫正时间
bkr备份寄存器 设置
USB:
对于STM32f1xx来说can协议和USB不能同时使用
DAC
STM32F103DAC输出直流、锯齿波、三角波,正弦波_stm32如何生成锯齿波在lcd上显示-CSDN博客