当前位置: 首页 > news >正文

工信部怎么查网站备案信阳企业网站建设

工信部怎么查网站备案,信阳企业网站建设,免费注册企业邮箱域名,快速优化网站排名的方法CubeMX配置RTC前言一、什么是RTC?RTC时钟源RTC备份域二、实验过程1.CubeMX配置2.代码实现3.实验结果总结前言 本章介绍使用STM32CubeMX对RTC进行配置的方法,RTC的原理、概念和特点,配置各个步骤的功能,并通过实验方式验证。 一、…

CubeMX配置RTC

  • 前言
  • 一、什么是RTC?
    • RTC时钟源
    • RTC备份域
  • 二、实验过程
    • 1.CubeMX配置
    • 2.代码实现
    • 3.实验结果
  • 总结


前言

本章介绍使用STM32CubeMX对RTC进行配置的方法,RTC的原理、概念和特点,配置各个步骤的功能,并通过实验方式验证。

一、什么是RTC?

RTC (Real Time Clock),实质是一个 掉电后还继续运行的定时器。从定时器的角度来说,相对于通用定时器 TIM 外设,它十分简单,只有很纯粹的计时和触发中断的功能;但从掉电还继续运行的角度来说,它却是 STM32 中唯一一个具有如此强大功能的外设。所以 RTC外设的复杂之处并不在于它的定时功能,而在于它掉电还继续运行的特性。

当主电源 VDD 断开的情况,为了 RTC 外设掉电继续运行,必须接上锂电池通过 VBAT 引脚给RTC供电。
当主电源 VDD 有效时,由 VDD 给 RTC 外设供电;

无论由什么电源供电, RTC 中的数据都保存在属于 RTC 的备份域中,若主电源 VDD 和 VBAT 都掉电,那么备份域中保存的所有数据将丢失。备份域除了 RTC 模块的寄存器,还有 42 个 16 位的寄存器可以在 VDD 掉电的情况下保存用户程序的数据,系统复位或电源复位时,这些数据也不会被复位。

RTC时钟源

RTC时钟源有三种:高速外部时钟、低速内部时钟 LSI 、低速外部时钟 LSE;使 HSE分频时钟或 LSI 的话,在主电源 VDD 掉电的情况下,这两个时钟来源都会受到影响,因此没法保证 RTC 正常工作。因此 RTC 一般使用低速外部时钟 LSE,在设计中,频率通常为实时时钟模块中常用的 32.768KHz,这是因为 32768 = 2^15,分频容易实现,所以它被广泛应用到 RTC 模块。

下面是RTC的框图
RTC框图

RTC备份域

框图中浅灰色的部分都是RTC备份域,在 VDD 掉电时可在 VBAT 的驱动下继续运行。这部分仅包括 RTC 的分频器,计数器,和闹钟控制器。若 VDD 电源有效, RTC 可以触发 RTC_Second(秒中断)、 RTC_Overflow(溢出事件) 和 RTC_Alarm(闹钟中断)。

从结构图可以分析到,其中的定时器溢出事件无法被配置为中断。若 STM32 原本处于待机状态,可由闹钟事件或 WKUP 事件 (外部唤醒事件,属于 EXTI 模块,不属于 RTC) 使它退出待机模式。闹钟事件是在计数器 RTC_CNT的值等于闹钟寄存器 RTC_ALR 的值时触发的。在备份域中所有寄存器都是 16 位的, RTC 控制相关的寄存器也不例外。它的计数器 RTC_CNT 的32 位由 RTC_CNTL 和 RTC_CNTH 两个寄存器组成,分别保存定时计数值的低 16 位和高 16 位。在配置 RTC 模块的时钟时,通常把输入的 32768Hz 的 RTCCLK 进行 32768 分频得到实际驱动计数器的时钟 TR_CLK = RTCCLK/32768= 1 Hz,计时周期为 1 秒,计时器在 TR_CLK 的驱动下计数,即每秒计数器 RTC_CNT 的值加 1。

二、实验过程

1.CubeMX配置

选择芯片stm32f103c6t6,新建工程

在这里插入图片描述

设置时钟源,最小系统外部晶振8Mhz,作为外部高速HSE时钟源。由于没有外接外部低速晶振,这里低速时钟源选择旁路时钟源。

在这里插入图片描述

配置时钟树,这里使用官方推荐的配置

在这里插入图片描述
在这里插入图片描述
USART1的参数配置如下,波特率115200,传输数据长度为8 Bit,奇偶检验无,停止位1.其他参数默认
在这里插入图片描述
RTC配置
在这里插入图片描述
Code Generator中设置只拷贝使用到的库,分离.c和.h文件
在这里插入图片描述

设置好项目名称和路径,点击GENERATE CODE即可,生成后使用keil5 IDE打开。

在这里插入图片描述

2.代码实现

在usart.c文件后面添加如下代码,代码中添加了#ifdef宏定义进行条件编译,如果使用GUNC编译,则PUTCHAR_PROTOTYPE 定义为int __io_putchar(int ch)函数,否则定义为int fputc(int ch, FILE *f)函数。

/* USER CODE BEGIN 0 */
#include "stdio.h"
#ifdef __GNUC__/* With GCC/RAISONANCE, small printf (option LD Linker->Libraries->Small printfset to 'Yes') calls __io_putchar() */#define PUTCHAR_PROTOTYPE int __io_putchar(int ch)
#else#define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f)
#endif /* __GNUC__ */
/*** @brief  Retargets the C library printf function to the USART.* @param  None* @retval None*/
PUTCHAR_PROTOTYPE
{/* Place your implementation of fputc here *//* e.g. write a character to the EVAL_COM1 and Loop until the end of transmission */HAL_UART_Transmit(&huart1, (uint8_t *)&ch, 1, 0xFFFF);return ch;
}
/* USER CODE END 0 */

main函数如下,每秒串口打印一次:

RTC_DateTypeDef sdatestructure;
RTC_TimeTypeDef stimestructure;/*** @brief  The application entry point.* @retval int*/
int main(void)
{/* USER CODE BEGIN 1 *//* USER CODE END 1 *//* MCU Configuration--------------------------------------------------------*//* Reset of all peripherals, Initializes the Flash interface and the Systick. */HAL_Init();/* USER CODE BEGIN Init *//* USER CODE END Init *//* Configure the system clock */SystemClock_Config();/* USER CODE BEGIN SysInit *//* USER CODE END SysInit *//* Initialize all configured peripherals */MX_GPIO_Init();MX_DMA_Init();MX_USART1_UART_Init();/* USER CODE BEGIN 2 *//* USER CODE END 2 *//* Infinite loop *//* USER CODE BEGIN WHILE */while (1){/* USER CODE END WHILE *//* USER CODE BEGIN 3 */HAL_RTC_GetTime(&hrtc, &stimestructure, RTC_FORMAT_BIN);/* Get the RTC current Date */HAL_RTC_GetDate(&hrtc, &sdatestructure, RTC_FORMAT_BIN);/* Display date Format : yy/mm/dd */printf("%02d/%02d/%02d\r\n",2000 + sdatestructure.Year, sdatestructure.Month, sdatestructure.Date);/* Display time Format : hh:mm:ss */printf("%02d:%02d:%02d\r\n",stimestructure.Hours, stimestructure.Minutes, stimestructure.Seconds);HAL_Delay(1000);}/* USER CODE END 3 */
}

3.实验结果

在这里插入图片描述

总结

本章介绍了RTC进行配置的方法,原理、概念和特点,配置各个步骤的功能,并通过实验方式验证。

http://www.yayakq.cn/news/982618/

相关文章:

  • 商洛做网站的公司容易收录的网站
  • 全国企业名录北京网络排名优化
  • 网站开发使用数据库的好处php网站开发进程
  • 濮阳网站建设熊掌网络爱吖网
  • 吉林公司做网站梦幻西游网页版官方网站
  • 网站站外推广的内外链接怎么做绵阳东原建设工程有限公司网站
  • 慕课网电子商务网站开发某网站搜索引擎优化
  • 网站建设开发程序代码网络服务提供者不是网络运营者对不对
  • 自动全屏网站模板外贸网站有必要吗
  • 做网站设计用什么软件网站发帖推广平台
  • 类似猪八戒的网站建设域名解析网站登录
  • 做汽车英文网站做网站租服务器多少钱
  • 广州天河区网站建设公司石景山网站seo优化排名
  • 手机网站适合分开做深圳宝安美容医院网站建设
  • 企业先做网站还是先做淘宝wordpress临时关闭站点
  • 二建转注辽宁建设主管部门网站如何让网站关键词搜录
  • 本地南昌网站建设慈利网站建设
  • 怎样做微课网站wordpress点击分享功能
  • 广东一站式网站建设推荐inovation wordpress
  • 外面网站怎么做的公司市场营销策划方案
  • 刚注册在域名可以自己做网站吗wordpress auto spinner
  • 建网站的系统展示型网站有哪些
  • 全国城市雕塑建设官方网站个性化网站建设
  • wordpress卢松松自适应seo网络推广有哪些
  • php做网站后台在网上可以做宣传的有那些网站
  • vscode网站开发公司官网的作用
  • 网站建设展示型是什么用cms建设网站课程
  • 网站主服务器域名浙江省网站备案
  • 做网站的女生多么网站评论设计
  • 建设工程质量安全监督站官方网站温州本地论坛