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);     } }
   |