实验目的:
通过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.
* 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; //µ¥Æ¬»úÄÚ²¿RTC¶Áȡʱ¼ä
RTC_DateTypeDef GetDate; //µ¥Æ¬»úÄÚ²¿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);//更新时间
完美,收工!!!
上一篇:解决MDK仿真时候弹框Programming range...问题
下一篇:STM32CubeMX配置ADC模拟看门狗实现掉电保存
推荐阅读最新更新时间:2024-11-10 12:04
推荐帖子
- MDD开关电源回路中续流二极管(肖特基)注意事项?
- MDD肖特基二极管的主要优缺点有哪些呢?MDD开关电源回路中续流二极管(肖特基)注意事项的原理是什么?一.肖特基二极管的主要优缺点:1.反向恢复时间短反向恢复时间是指二极管由流过正向电流的导通状态切换到不导通状态需要的时间。由于肖特基半导体导通时只有多数载流子,没有少数载流子,所以理论上并没有反向恢复时间,使肖特基二极管成为二极管中速度最快的一类。2.正向稳态导通压降低肖特基二极管正向压降非常小,一般为0.2~0.45V,比快恢复二极管正向压降低很多,所以自身功耗较小。3.肖特基二
- 辰达行电子 分立器件
- 【CW32L052测评】 sysclk延时测试
- 这篇来学习下CW32L052芯片是sysclk时钟的配置和使用。一、时钟框图芯片能工作的最大时钟是48MHz,这里使用内部48MHz的HSI时钟来配置sysclk。二、程序部分2.1、时钟配置时钟这部分配置有点奇怪,直接配置使能48MHz的HSI,程序不启动,时钟切换到HSE或LSI,再且回到HSI,可以正常启动运行。voidrcc_config(void){ uint8_tres=0U; RCC_AHBPeriphClk_Ena
- TL-LED 国产芯片交流
- 最牛B的TFT驱动代码!51 AVR 430 STM32 LPC......!
- 共享一个TFT的驱动代码,支持8位,16位!市场常见的单片机代码基本齐了,呵呵!资料包:最牛B的TFT驱动代码!51AVR430STM32LPC......!谢谢分享本站强荐:185娱乐﹚城.足球﹚真_人.彩票齐全﹚手机可投﹚注任何游戏.首次开户送10元.首存送58元.信誉绝对保证185.cc
- shanyan 淘e淘
- 【 信号处理】数字滤波器的实现VHDL
- 基于FPGA的数字滤波器quartusII工程文件,所包含的文件包括:firfilter.vhd三阶八位的FIRfirfilter1.vhd改进的FIRfir_lut查表法FIRfilter.vhd读入数据和将串进数据变换为查表地址;lut.vhd按输入的查表地址读出相应的数据;shift_add.vhd将lut模块输出的数据进行移位相加,并输出最后结果;control.vhd将以上三个模块联接起来。iirfilter.vhd简
- jishuaihu FPGA/CPLD
- 实用资料——3G技术标准及其发展研究
- 随着通信业务的迅猛发展和通信量的激增,未来的移动通信系统不仅要有大的系统容量,而且还要能支持话音、数据、图像、多媒体等多种业务的有效传输。第三代移动通信系统将高速移动接入和基于互联网协议的服务结合起来,在提高无线频率利用率的同时,为用户提供更经济、内容更丰富的无线通信服务。 第三代移动通信系统在国际上统称为IMT-2000(简称3G),是国际电信联盟(ITU)在1985年提出的工作在2000MHz频段的系统。与第一代模拟移动通信和第二代数字移动通信系统相比,第三代的最主要特征
- 1234 RF/无线
- linux 内核从4.14升级到5.15版本,启动60s后无任何打印就自动重启了
- 问题:linux内核从4.14升级到5.15版本,启动60s后无任何打印就自动重启了芯片:marvellCN9130,arm64设备本来用4.14版本的内核都正常,然后根据marvel发布的SDK去编译5.15版本的内核,烧录到flsh中,并把编译生成的B.dt和rootfs一块搞到设备上。然后设备可以正常启动,可以进shell,但是内核起来60s的时候,设备就自动重启了。且重启的时候没有打印任何异常log可以排除掉的是内核的软件狗(宏没有打开且/proc/sys/kern
- ColdIce1123 Linux与安卓
设计资源 培训 开发板 精华推荐
- uP9616五福王者快充模块
- ADP2139CB-3.3EVALZ,ADP2138 评估板,800 mA,输出电压 3.3 V,3 MHz 降压稳压器
- 使用 ON Semiconductor 的 NCV7691 的参考设计
- 【涂鸦智能】温湿度传感器
- 使用 NXP Semiconductors 的 UBA1702 的参考设计
- LTC4065EDC 演示板,650mA 独立锂离子电池充电器,Vin=3.75V-5.25V
- 多功能控制台
- ADA4858-3ACPZ-R7钳位放大器典型应用电路
- ESP32_PICO_D4+ST7735开发板V3
- SY58023U,用于 GB 以太网交换机的模拟交换机评估板
- 抢楼有奖:免费获得元器件样品本~~
- 【瓜分2500元红包】 票选DigiKey\"智造万物,快乐不停\"创意大赛人气作品TOP3!
- 预约有礼:2020年最新KEE课程
- TI圣诞狂欢:上千套CC3200开发套件免费申请(仅限在校大学生)
- Murata旗舰店1周年淘宝直播
- Wi-Fi智能战队征集令,Open1081免费试用进行中...
- 下载送好礼|人工智能物联网时代即将来临,您准备好了吗?
- 下载应用文章有礼啦!新方案新标准:助你克服第四代I/O应用中的接收机测试挑战!
- TI隔离技术知多少?答题赢好礼!
- 下载MPS汽车电机控制技术干货,赢【Keep体脂秤、自动洗手机套装、小米保温杯】,开启汽车技术进阶之旅!