迅维网

标题: 【NUCLEO-F412ZG试用体验】RTC [打印本页]

作者: バ幸福De右岸    时间: 2017-2-8 12:31
标题: 【NUCLEO-F412ZG试用体验】RTC
本来想学习DAC,只是412没有DAC功能,所以也就罢了,学习下RTC功能。
Step1.打开 STM32CubeMX,点击“New Project”,选择芯片型号,STM32F412ZGTx。

                               
登录/注册后看高清大图

Step2. 在 Pinout 界面下配置引脚功能。
RTC:使用其内部唤醒功能即可。

                               
登录/注册后看高清大图

配置外部 32768Hz 晶振输入,作为 RTC 时钟。

                               
登录/注册后看高清大图

Step3.在 Clock Configuration 界面配置时钟源。
配置时钟树,RTC 使用 32768Hz 外部时钟,其它使用默认值如下:

                               
登录/注册后看高清大图

Step4.配置外设参数。
RTC:时间 24 小时格式,数据格式使用二进制,日期 2017 年 2 月 7 日星期二,时间 21:20:00,唤
醒时钟频率 1Hz,其它参数默认。

                               
登录/注册后看高清大图

Step5.生成源代码。
并在main.c添加代码如下:
定义用户变量:
  • /* USER CODE BEGIN PV */
  • /* Private variables ---------------------------------------------------------*/
  • RTC_DateTypeDef mDate;
  • RTC_TimeTypeDef mTime;
  • uint8_t tmp_Seconds;
  • /* USER CODE END PV */


[color=rgb(51, 102, 153) !important]复制代码

主函数:
  •   while (1)
  •   {
  •   /* USER CODE END WHILE */
  •   /* USER CODE BEGIN 3 */
  •         HAL_Delay(10);
  •         HAL_RTC_GetDate(&hrtc,&mDate,RTC_FORMAT_BIN);
  •         HAL_RTC_GetTime(&hrtc,&mTime,RTC_FORMAT_BIN);
  •         if(tmp_Seconds != mTime.Seconds)
  •         {
  •                 tmp_Seconds = mTime.Seconds;
  •                 printf("20%02d-%02d-%02d  ",mDate.Year,mDate.Month,mDate.Date);
  •                 printf("%02d:%02d:%02d\r\n",mTime.Hours,mTime.Minutes,mTime.Seconds);
  •         }

[color=rgb(51, 102, 153) !important]复制代码

配置项目,使用ITM作为调试输出。

                               
登录/注册后看高清大图


                               
登录/注册后看高清大图

编译并运行项目会在Debug (print)View看到输出的时间信息

                               
登录/注册后看高清大图






欢迎光临 迅维网 (https://www.chinafix.com/) Powered by Discuz! X3.4