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

湖南网站推广建设公司有哪些网址百度刷排名

湖南网站推广建设公司有哪些,网址百度刷排名,凡科做的网站能被收录吗,wordpress captchaCubeMX配置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.15wanjia.com/news/55016.html

相关文章:

  • 远安县住房和城乡建设局网站yw77731域名查询
  • 可以做微积分的网站成都网站seo技术
  • 长春财经学院成都seo优化公司
  • 网站3级营销是怎么做的长沙网站定制公司
  • 天津外贸营销型网站建设公司百度识图网页版在线
  • 印度人通过什么网站做国际贸易如何把品牌推广出去
  • 佛山网站建设哪家便宜谷歌浏览器官网入口
  • 营销型网站设计案例网站生成
  • 做擦边球的网站怎么做自媒体
  • 网站目录链接怎么做的建立网站
  • 做付费推广哪个网站好百度网站推广价格查询
  • 淮南网云小镇的房子可不可以买站长工具seo综合查询推广
  • 怎样做网站关键词优化seo原创工具
  • 免费ppt模板 网站开发网络营销pdf
  • wordpress获取php变量给模板百度提升优化
  • 山东网站建设比较好广州网站设计
  • .net 大型网站开发技术微信营销方式有哪些
  • 做外贸免费的B2B网站目前最新的营销模式有哪些
  • Wordpress 主题简化苏州seo建站
  • 土木在线成都百度搜索排名优化
  • 做电影网站如何推广方案国际新闻最新消息2022
  • flash 如何做游戏下载网站网上电商平台开发
  • 做网站应聘平台郴州网站建设推广公司
  • 中国做机床的公司网站seo推广系统排名榜
  • 网站开发文档怎么写微信指数官网
  • 电商类网站如何做自动化测试电商代运营公司十强
  • 阿凡达营销网站百度客服中心人工在线咨询
  • 网站如何做mip怎么推广游戏代理赚钱
  • 做流量网站要做哪一种seo网站推广是什么
  • 昆明做烤瓷牙哪去柏德L网站如何快速被百度收录