CH4-RTC
RTC原理
CubeMX配置
下载线配置
RTC配置
USART配置
USART DMA配置
USER按键中断配置
NVIC配置
时钟树配置
MDK程序编写
使用BIN码
使用BIN码配置
function.c
RTC读取时间函数
==注:时间的读取必须要在日期之前,否则发送的时候会发生错误==
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| unsigned char *RTC_data(void) { static unsigned char rtc_data_read[7]; extern RTC_HandleTypeDef hrtc; RTC_TimeTypeDef read_time_data; RTC_DateTypeDef read_date_data; HAL_RTC_GetTime(&hrtc,&read_time_data,RTC_FORMAT_BIN); HAL_RTC_GetDate(&hrtc,&read_date_data,RTC_FORMAT_BIN);
rtc_data_read[0]=read_date_data.Year; rtc_data_read[1]=read_date_data.Month; rtc_data_read[2]=read_date_data.WeekDay; rtc_data_read[3]=read_date_data.Date; rtc_data_read[4]=read_time_data.Hours; rtc_data_read[5]=read_time_data.Minutes; rtc_data_read[6]=read_time_data.Seconds; return rtc_data_read; }
|
fputc函数
==注:需要使用头文件 #include “stdio.h”==
1 2 3 4 5 6 7 8 9
| int fputc(int ch,FILE *f) { extern UART_HandleTypeDef huart2; HAL_UART_Transmit(&huart2,(uint8_t *)&ch,1,0xffff); while(__HAL_UART_GET_FLAG(&huart2, UART_FLAG_TC) == RESET){} return ch; }
|
main.c
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| #include "function.h" int main(void) { extern int flag_send; unsigned char *receive_rtc; while(1) { receive_rtc=RTC_data(); printf("\r\n RTC:%d-%d-%d \r\n %d:%d:%d \r\n",2000+receive_rtc[0],receive_rtc[1],receive_rtc[3],receive_rtc[4],receive_rtc[5],receive_rtc[6]); HAL_Delay(1000); } }
|