【iCore4 双核心板_ARM】例程十:RTC实时时钟实验——显示时间和日期

时间:2023-03-09 13:30:15
【iCore4 双核心板_ARM】例程十:RTC实时时钟实验——显示时间和日期

实验现象:

【iCore4 双核心板_ARM】例程十:RTC实时时钟实验——显示时间和日期

核心代码:

int main(void)
{
/* USER CODE BEGIN 1 */
RTC_TimeTypeDef sTime;
RTC_DateTypeDef sDate;
int second_bak = ; /* USER CODE END 1 */ /* MCU Configuration----------------------------------------------------------*/ /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
HAL_Init(); /* USER CODE BEGIN Init */ /* USER CODE END Init */ /* Configure the system clock */
SystemClock_Config(); /* USER CODE BEGIN SysInit */ /* USER CODE END SysInit */ /* Initialize all configured peripherals */
MX_GPIO_Init();
MX_RTC_Init();
MX_USART6_UART_Init(); /* USER CODE BEGIN 2 */
usart6.initialize(); //´®¿Ú²¨ÌØÉèÖÃ
usart6.printf("\x0c"); //ÇåÆÁ
usart6.printf("\033[1;32;40m"); //ÉèÖÃÖÕ¶Ë×ÖÌåΪÂÌÉ«
usart6.printf(" Hello, I am iCore4!\r\n"); //´®¿ÚÐÅÏ¢Êä³ö
LED_GREEN_ON; //ÉèÖÃRTCÈÕÆÚºÍʱ¼ä
my_rtc.set_date(,,,);
my_rtc.set_time(,,);
/* USER CODE END 2 */ /* Infinite loop */
/* USER CODE BEGIN WHILE */
while ()
{
/* USER CODE END WHILE */ /* USER CODE BEGIN 3 */
HAL_Delay(); //¶ÁÈ¡RTCÈÕÆÚºÍʱ¼ä
HAL_RTC_GetTime(&hrtc, &sTime, RTC_FORMAT_BIN);
HAL_RTC_GetDate(&hrtc, &sDate, RTC_FORMAT_BIN);
if(second_bak != sTime.Seconds){
usart6.printf(" %02d:%02d:%02d ",sTime.Hours,sTime.Minutes,sTime.Seconds);
usart6.printf("20%02d-%02d-%02d \r",sDate.Year,sDate.Month,sDate.Date);
second_bak = sTime.Seconds;
}
}
/* USER CODE END 3 */ }

源代码下载链接:

链接:http://pan.baidu.com/s/1pLJn3HT 密码:gjwl

iCore4链接:

【iCore4 双核心板_ARM】例程十:RTC实时时钟实验——显示时间和日期