娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

歷史上的今天

今天是:2024年09月08日(星期日)

2021年09月08日 | STM32CubeMX配置RTC——基于(STM32G070+STM32CubeMX+HAL庫+RTC)

發布者:心若水仙 來源: eefocus關鍵字:STM32CubeMX  HAL庫 手機看文章 掃描二維碼
隨時隨地手機看文章

實驗目的:

通過STM32CubeMX進行簡單配置生成HAL庫實現內部晶振RTC。


一、STM32CubeMX配置如下:

1.時鐘樹配置:

因為板子沒有外部RTC晶振,所以只能使用內部32KHz晶振,時鐘樹配置如下:

在這里插入圖片描述

2.RTC配置:

在這里插入圖片描述

(1)關于Asynchronous Predivider value 和 Synchronous Predivider value填寫多少,請看下面:

在這里插入圖片描述
在這里插入圖片描述

因為內部晶振是32KHz,所以毫無疑問應該選擇LSI=32KHz即:


Asynchronous Predivider value :127

Synchronous Predivider value :249


(2)關于Hours、Minutes等這些初值沒啥好疑問的,直接填寫,但是Year需要注意一下,它是從1970年開始算起的,所以比如填寫50就是2020年的意思。

二、STM32CubeMX配置生成的HAL庫如下:

/**

  ******************************************************************************

  * File Name          : RTC.c

  * Description        : This file provides code for the configuration

  *                      of the RTC instances.

  ******************************************************************************

  * @attention

  *

  *

© Copyright (c) 2020 STMicroelectronics.

  * All rights reserved.

  *

  * This software component is licensed by ST under BSD 3-Clause license,

  * the "License"; You may not use this file except in compliance with the

  * License. You may obtain a copy of the License at:

  *                        opensource.org/licenses/BSD-3-Clause

  *

  ******************************************************************************

  */


/* Includes ------------------------------------------------------------------*/

#include "rtc.h"


/* USER CODE BEGIN 0 */

RTC_TimeTypeDef GetTime;   //μ¥???ú?ú2?RTC?áè?ê±??

RTC_DateTypeDef GetDate;   //μ¥???ú?ú2?RTC?áè?è??ú

uint8_t RTC_READ_Flag;

/* USER CODE END 0 */


RTC_HandleTypeDef hrtc;


/* RTC init function */

void MX_RTC_Init(void)

{

  RTC_TimeTypeDef sTime = {0};

  RTC_DateTypeDef sDate = {0};


  /** Initialize RTC Only 

  */

  hrtc.Instance = RTC;

  hrtc.Init.HourFormat = RTC_HOURFORMAT_24;

  hrtc.Init.AsynchPrediv = 127;

  hrtc.Init.SynchPrediv = 249;

  hrtc.Init.OutPut = RTC_OUTPUT_DISABLE;

  hrtc.Init.OutPutRemap = RTC_OUTPUT_REMAP_NONE;

  hrtc.Init.OutPutPolarity = RTC_OUTPUT_POLARITY_HIGH;

  hrtc.Init.OutPutType = RTC_OUTPUT_TYPE_OPENDRAIN;

  hrtc.Init.OutPutPullUp = RTC_OUTPUT_PULLUP_NONE;

  if (HAL_RTC_Init(&hrtc) != HAL_OK)

  {

    Error_Handler();

  }


  /* USER CODE BEGIN Check_RTC_BKUP */

    

  /* USER CODE END Check_RTC_BKUP */


  /** Initialize RTC and set the Time and Date 

  */

  sTime.Hours = 19;

  sTime.Minutes = 07;

  sTime.Seconds = 00;

  sTime.SubSeconds = 0;

  sTime.DayLightSaving = RTC_DAYLIGHTSAVING_NONE;

  sTime.StoreOperation = RTC_STOREOPERATION_RESET;

  if (HAL_RTC_SetTime(&hrtc, &sTime, RTC_FORMAT_BIN) != HAL_OK)

  {

    Error_Handler();

  }

  sDate.WeekDay = RTC_WEEKDAY_WEDNESDAY;

  sDate.Month = RTC_MONTH_SEPTEMBER;

  sDate.Date = 8;

  sDate.Year = 50;


  if (HAL_RTC_SetDate(&hrtc, &sDate, RTC_FORMAT_BIN) != HAL_OK)

  {

    Error_Handler();

  }


}


void HAL_RTC_MspInit(RTC_HandleTypeDef* rtcHandle)

{


  if(rtcHandle->Instance==RTC)

  {

  /* USER CODE BEGIN RTC_MspInit 0 */


  /* USER CODE END RTC_MspInit 0 */

    /* RTC clock enable */

    __HAL_RCC_RTC_ENABLE();

    __HAL_RCC_RTCAPB_CLK_ENABLE();

  /* USER CODE BEGIN RTC_MspInit 1 */


  /* USER CODE END RTC_MspInit 1 */

  }

}


void HAL_RTC_MspDeInit(RTC_HandleTypeDef* rtcHandle)

{


  if(rtcHandle->Instance==RTC)

  {

  /* USER CODE BEGIN RTC_MspDeInit 0 */


  /* USER CODE END RTC_MspDeInit 0 */

    /* Peripheral clock disable */

    __HAL_RCC_RTC_DISABLE();

    __HAL_RCC_RTCAPB_CLK_DISABLE();

  /* USER CODE BEGIN RTC_MspDeInit 1 */


  /* USER CODE END RTC_MspDeInit 1 */

  }


三、時間日期獲取設置等:

1、自己重繪一個設置time的函數:

/* USER CODE BEGIN 1 */

void RTC_SetTime(u8 hour, u8 minute, u8 second)

{

  /*##-2- Configure the Time #################################################*/

  GetTime.Hours = hour;

  GetTime.Minutes = minute;

  GetTime.Seconds = second;

//  GetTime.TimeFormat = RTC_HOURFORMAT12_AM;

  GetTime.DayLightSaving = RTC_DAYLIGHTSAVING_NONE;

  GetTime.StoreOperation = RTC_STOREOPERATION_RESET;


  if(HAL_RTC_SetTime(&hrtc,&GetTime,RTC_FORMAT_BIN) != HAL_OK)

  {

  

  }

}

/* USER CODE END 1 */


2、調用函數實現RTC:

1.首先初始化RTC時鐘:


  MX_RTC_Init();


2.接著設置time時間:


 RTC_SetTime(11,59,50);   //設置時間為11時59分50秒


3.然后調用HAL庫函數實現time和date獲取,有個細節要注意一下,需要先獲取日期再獲取時間,親測直接獲取時間會有問題:


      HAL_RTC_GetDate(&hrtc, &GetDate, RTC_FORMAT_BIN);//更新日期

      HAL_RTC_GetTime(&hrtc, &GetTime, RTC_FORMAT_BIN);//更新時間


完美,收工!!!

關鍵字:STM32CubeMX  HAL庫 引用地址:STM32CubeMX配置RTC——基于(STM32G070+STM32CubeMX+HAL庫+RTC)

上一篇:解決MDK仿真時候彈框Programming range...問題
下一篇:STM32CubeMX配置ADC模擬看門狗實現掉電保存

推薦閱讀

先簡單介紹下STM8L151G6U6,該MCU是STM8L超低功耗系列,與152系列相比只是少了LCD的功能,官方手冊介紹的各個低功耗模式的功耗如下:其低功耗性能還是很不錯的,在本文中是基于活躍停機低功耗模式來測試的。要實現STM8L151G6的低功耗,主要可以注意以下幾點:1. 不需要用到的外設一律不使能外設時鐘,對于臨時使用的外設,只需在使用時臨時打開即可,使用...
9月6日,三星電子表示,其首款采用5G技術的可折疊屏智能手機Galaxy Fold將于9月6日起在韓國發售。該公司表示,這款設備的定價為239.8萬韓元(約合1977.47美元)。三星周四還表示,未來還將在包括英國、法國、德國和美國在內的一些國家提供5G和LTE版本的Galaxy Fold,但沒有透露具體發售日期。據鳳凰科技消息,三星電子的可折疊手機Galaxy Fold在韓國正...
一、宏定義不同:16系列__CONFIG(FOSC_INTOSC&WDTE_OFF&PWRTE_ON&MCLRE_OFF&CP_ON&CPD_OFF&BOREN_ON&CLKOUTEN_OFF&IESO_ON&FCMEN_ON);//這個要放到上一行去__CONFIG(PLLEN_ON&LVP_OFF) ;//將FOSC<2:0>:振蕩器選擇位設置成 INTOSC,使能PLLEN18系列#pragma config WDT = OFF, OSC = HS#pragma config PBADEN = OFF //forbidden PORTB adc...
  音叉料位開關的探頭為2片叉體,基于音叉式設計,采用壓電器件實現叉體的振動驅動與檢測。計為Fork-11音叉料位開關通過合理增加叉體面積,使測量靈敏度得以極大提高,可測物料密度低至0.008g/cm3。細節決定品質。事實上,計為音叉料位開關仍有許多不為人知的人性化設計以及使用過程中需要注意的細節,了解并掌握它,有助于我們更好地安裝和使用音叉料...

史海拾趣

小廣播
設計資源 培訓 開發板 精華推薦

最新單片機文章
何立民專欄 單片機及嵌入式寶典

北京航空航天大學教授,20余年來致力于單片機與嵌入式系統推廣工作。

 
EEWorld訂閱號

 
EEWorld服務號

 
汽車開發圈

 
機器人開發圈

電子工程世界版權所有 京ICP證060456號 京ICP備10001474號-1 電信業務審批[2006]字第258號函 京公網安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 永登县| 莱州市| 泸定县| 崇文区| 武陟县| 灯塔市| 武清区| 林口县| 庆云县| 永平县| 泾川县| 锦州市| 溧水县| 平湖市| 安徽省| 繁昌县| 镶黄旗| 顺平县| 新巴尔虎左旗| 呼图壁县| 鹿泉市| 松桃| 甘谷县| 天水市| 林芝县| 兴义市| 增城市| 宜城市| 洪泽县| 怀柔区| 威远县| 攀枝花市| 梧州市| 舟山市| 杭锦后旗| 永仁县| 九江市| 宁河县| 卫辉市| 涞源县| 济阳县|