/* USER CODE BEGIN Header */ /** ****************************************************************************** * @file rtc.c * @brief This file provides code for the configuration * of the RTC instances. ****************************************************************************** * @attention * * Copyright (c) 2024 STMicroelectronics. * All rights reserved. * * This software is licensed under terms that can be found in the LICENSE file * in the root directory of this software component. * If no LICENSE file comes with this software, it is provided AS-IS. * ****************************************************************************** */ /* USER CODE END Header */ /* Includes ------------------------------------------------------------------*/ #include "rtc.h" /* USER CODE BEGIN 0 */ /* USER CODE END 0 */ RTC_HandleTypeDef hrtc; /* RTC init function */ void MX_RTC_Init(void) { /* USER CODE BEGIN RTC_Init 0 */ /* USER CODE END RTC_Init 0 */ // RTC_TimeTypeDef sTime = {0}; // // RTC_DateTypeDef DateToUpdate = {0}; /* USER CODE BEGIN RTC_Init 1 */ __HAL_RCC_BKP_CLK_ENABLE(); //开启后备区域时钟 __HAL_RCC_PWR_CLK_ENABLE(); //开启电源时钟 /* USER CODE END RTC_Init 1 */ /** Initialize RTC Only */ hrtc.Instance = RTC; hrtc.Init.AsynchPrediv = RTC_AUTO_1_SECOND; hrtc.Init.OutPut = RTC_OUTPUTSOURCE_NONE; if (HAL_RTC_Init(&hrtc) != HAL_OK) { Error_Handler(); } /* USER CODE BEGIN Check_RTC_BKUP */ /* USER CODE END Check_RTC_BKUP */ /* USER CODE BEGIN RTC_Init 2 */ // case 3: // { // if (sendCmd_4G("AT+CCLK?\r\n", "OK", 1, 1)) // { // // memcpy(year_str, &g_ML307A_8buf_Down[8], 2); // 复制两个字符 // memcpy(month_str, &g_ML307A_8buf_Down[11], 2); // memcpy(day_str, &g_ML307A_8buf_Down[14], 2); // memcpy(hour_str, &g_ML307A_8buf_Down[17], 2); // memcpy(minute_str, &g_ML307A_8buf_Down[20], 2); // memcpy(second_str, &g_ML307A_8buf_Down[23], 2); // // year_str[2] = '\0'; // 添加空字符结束符 // month_str[2] = '\0'; // day_str[2] = '\0'; // hour_str[2] = '\0'; // minute_str[2] = '\0'; // second_str[2] = '\0'; // // time.year = (uint8_t)atoi(year_str); // 使用atoi函数将字符转换为数字并赋值给time.year // time.month = (uint8_t)atoi(month_str); // time.day = (uint8_t)atoi(day_str); // time.hour = (uint8_t)atoi(hour_str)+8; // time.minute = (uint8_t)atoi(minute_str); // time.second = (uint8_t)atoi(second_str); // // printf("#year: %02d\r\n",time.year); // printf("#month: %02d\r\n",time.month); // printf("#day: %02d\r\n",time.day); // printf("#hour: %02d\r\n",time.hour); // printf("#minute:%02d\r\n",time.minute); // printf("#second:%02d\r\n",time.second); // // // step4g++; // } // } /* USER CODE END RTC_Init 2 */ } void HAL_RTC_MspInit(RTC_HandleTypeDef* rtcHandle) { if(rtcHandle->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(); /* RTC clock enable */ __HAL_RCC_RTC_ENABLE(); /* RTC interrupt Init */ HAL_NVIC_SetPriority(RTC_IRQn, 5, 0); HAL_NVIC_EnableIRQ(RTC_IRQn); /* USER CODE BEGIN RTC_MspInit 1 */ /* USER CODE END RTC_MspInit 1 */ } } void HAL_RTC_MspDeInit(RTC_HandleTypeDef* rtcHandle) { if(rtcHandle->Instance==RTC) { /* USER CODE BEGIN RTC_MspDeInit 0 */ /* USER CODE END RTC_MspDeInit 0 */ /* Peripheral clock disable */ __HAL_RCC_RTC_DISABLE(); /* RTC interrupt Deinit */ HAL_NVIC_DisableIRQ(RTC_IRQn); /* USER CODE BEGIN RTC_MspDeInit 1 */ /* USER CODE END RTC_MspDeInit 1 */ } } /* USER CODE BEGIN 1 */ /* USER CODE END 1 */