STM32/STM8技术william hill官网
直播中

孙俊武

10年用户 580经验值
擅长:可编程逻辑 嵌入式技术 处理器/DSP 控制/MCU
私信 关注
[经验]

【NUCLEO-F412ZG试用体验】RTC

本来想学习DAC,只是412没有DAC功能,所以也就罢了,学习下RTC功能。
Step1.打开 STM32CubeMX,点击“New Project”,选择芯片型号,STM32F412ZGTx。
QQ图片20170207205404.png
Step2. 在 Pinout 界面下配置引脚功能。
RTC:使用其内部唤醒功能即可。
QQ图片20170207225241.png
配置外部 32768Hz 晶振输入,作为 RTC 时钟。
QQ图片20170207225429.png
Step3.在 Clock Configuration 界面配置时钟源。
配置时钟树,RTC 使用 32768Hz 外部时钟,其它使用默认值如下:
QQ图片20170207211850.png
Step4.配置外设参数。
RTC:时间 24 小时格式,数据格式使用二进制,日期 2017 年 2 月 7 日星期二,时间 21:20:00,唤
醒时钟频率 1Hz,其它参数默认。
QQ图片20170207225721.png
Step5.生成源代码。
并在main.c添加代码如下:
定义用户变量:
  1. /* USER CODE BEGIN PV */
  2. /* Private variables ---------------------------------------------------------*/
  3. RTC_DateTypeDef mDate;
  4. RTC_TimeTypeDef mTime;
  5. uint8_t tmp_Seconds;
  6. /* USER CODE END PV */
主函数:
  1.   while (1)
  2.   {
  3.   /* USER CODE END WHILE */

  4.   /* USER CODE BEGIN 3 */
  5.         HAL_Delay(10);
  6.         HAL_RTC_GetDate(&hrtc,&mDate,RTC_FORMAT_BIN);
  7.         HAL_RTC_GetTime(&hrtc,&mTime,RTC_FORMAT_BIN);
  8.         if(tmp_Seconds != mTime.Seconds)
  9.         {
  10.                 tmp_Seconds = mTime.Seconds;
  11.                 printf("20%02d-%02d-%02d  ",mDate.Year,mDate.Month,mDate.Date);
  12.                 printf("%02d:%02d:%02drn",mTime.Hours,mTime.Minutes,mTime.Seconds);
  13.         }
配置项目,使用ITM作为调试输出。
QQ图片20170207230150.png
QQ图片20170207230259.png
编译并运行项目会在Debug (print)View看到输出的时间信息
QQ图片20170207230420.png

更多回帖

发帖
×
20
完善资料,
赚取积分