stm32h7rtc
时间: 2023-10-23 07:09:19 浏览: 107
STM32CubeMX RTC配置STM32 RTC时钟掉电日期不更新
5星 · 资源好评率100%
stm32h7板子支持100脚的stm32h743和h750这两款芯片,并且板子的IO口全部引出来。除了基本功能外,它还有SD卡接口、24pin的CMOS摄像头接口、RTC时钟、QSPI接口的W25Q64,还支持程序从外置SPI芯片启动,解决了stm32h750内存Flash小的问题。
在代码编写方面,如果要开启闹钟中断和唤醒定时器中断,可以使用以下代码:
```
RTC_TimeTypeDef time;
RTC_DateTypeDef data;
uint32_t wakeup_data;
__HAL_RTC_WAKEUPTIMER_CLEAR_FLAG(&hrtc, RTC_FLAG_WUTF);
while (1) {
HAL_RTC_GetTime(&hrtc, &time, RTC_FORMAT_BIN);
HAL_RTC_GetDate(&hrtc, &data, RTC_FORMAT_BIN);
wakeup_data = HAL_RTCEx_GetWakeUpTimer(&hrtc);
printf("%d h %d min %d s\r\n", time.Hours, time.Minutes, time.Seconds);
HAL_GPIO_TogglePin(LEDB_GPIO_Port, LEDB_Pin);
HAL_Delay(1000);
}
void HAL_RTC_AlarmAEventCallback(RTC_HandleTypeDef *hrtc) {
printf("%s\r\n", __FUNCTION__);
}
void HAL_RTCEx_WakeUpTimerEventCallback(RTC_HandleTypeDef * hrtc) {
printf("%s\r\n", __FUNCTION__);
}
```
关于RTC的功能,它是stm32h7板子的核心功能之一,主要用于实现日历功能。RTC的时钟来源可以是外部参考时钟、LSE、分频HSE以及LSI,最终输入到RTC中。RTC的实时计数器是一个重要的计数器,但直接读取会出现数据不一致的问题,因此 stm32h7 内部还有一个影子寄存器,该寄存器会在时间变化时将实时计数器的数据复制过去。为了保证数据一致性,在读取影子寄存器时有硬件锁定机制。
阅读全文