1){HAL_RTC_GetTime(&hrtc, &sTime, RTC_FORMAT_BIN);HAL_RTC_GetDate(&hrtc, &sDate, RTC_...
在MDK-ARM软件中,我们需要在rtc.c 文件中实现秒中断和闹钟中断处理。与HAL库函数配合,获取并输出日期和时间信息。通过HAL_RTC_GetTime和HAL_RTC_GetDate函数,我们可以从RTC中获取当前时间和日期,再通过printf函数将这些信息输出。在rtc.c文件中编写中断处理函数,利用外部定义的结构体获取日期和时间信息,并在中断...
// 更新一次数据MyRTC_GetTime();}void MyRTC_GetTime(void){time_t time_stamp;struct tm time_...
nTime.Seconds =0x10;HAL_RTC_SetTime(&hrtc,&nTime,RTC_FORMAT_BCD);//或者2进制设置nTime.Hours =20; nTime.Minutes =30; nTime.Seconds =10;HAL_RTC_SetTime(&hrtc,&nTime,RTC_FORMAT_BIN);//获取时间HAL_RTC_GetTime(&hrtc,&nTime,RTC_FORMAT_BIN);printf("Time--%d:%d:%d\r\n",nTim...
HAL_RTC_GetTime:获取时间 HAL_RTC_GetDate:获取日期 这两个函数的第三个参数是格式:RTC_FORMAT_BIN和RTC_FORMAT_BCD,BIN格式就是十六进制数值直接表示的时间数值,BCD格式就是用数值的十六进制面值表示时间数值,例如表示第24分钟的时候,BCD格式的分钟值就是0X24。
RTC有个亚秒寄存器,通过计算可以得到ms级计时。 RTC_TimeTypeDef stimestructure; RTC_DateTypeDef sdatestructure;while(1) {/*USER CODE END WHILE*/HAL_RTC_GetTime(&hrtc, &stimestructure, RTC_FORMAT_BIN); HAL_RTC_GetDate(&hrtc, &sdatestructure, RTC_FORMAT_BIN);//亚秒值printf("%.3f,%d \...
在rtc.c文件中编写秒中断处理回调函数和闹钟中断处理函数 extern RTC_DateTypeDef GetDate; extern RTC_TimeTypeDef GetTime; void HAL_RTCEx_RTCEventCallback(RTC_HandleTypeDef *hrtc){ HAL_RTC_GetTime(hrtc,&GetTime,RTC_FORMAT_BIN); HAL_RTC_GetDate(hrtc,&GetDate,RTC_FORMAT_BIN); ...
我调用的是HAL_RTC_GetTime来获取时间,调用HAL_RTC_GetDate来获取日期。 我调用API的顺序是: HAL_RTC_GetDate(xxxxx); HAL_RTC_GetTime(xxxxx); 结果软件卡死,针对这问题我折腾了很久都找不出问题的根源,后来详细看了API上的注释说明。 1、获取当前的时间 HAL_RTC_GetTime /** * @brief Gets RTC curren...
uint32_t Format);HAL_StatusTypeDefHAL_RTC_GetTime(RTC_HandleTypeDef*hrtc,RTC_TimeTypeDef*sTime,uint32_t Format);HAL_StatusTypeDefHAL_RTC_SetDate(RTC_HandleTypeDef*hrtc,RTC_DateTypeDef*sDate,uint32_t Format);HAL_StatusTypeDefHAL_RTC_GetDate(RTC_HandleTypeDef*hrtc,RTC_DateTypeDef*sDate,uint32_t...
void RTC_display() //RTC??? { /* Get the RTC current Time */ HAL_RTC_GetTime(&hrtc, &GetTime, RTC_FORMAT_BIN); /* Get the RTC current Date */ HAL_RTC_GetDate(&hrtc, &GetData, RTC_FORMAT_BIN); /* Display date Format : yy/mm/dd */ /...