嵌入式学习——stm32(3.1)定时器基础
目录
1.定时器简介:
2.时基单元:
3.定时器资源:
3.1:基本定时器
3.2:通用定时器
4.总结:
1.定时器简介:
从字面来看,定时器就是用来计时的机器, 可以通过计时来触发中断或者事件。
2.时基单元:
定时器计时是通过时基单元来实现的,时基单元主要包括:预分频器(PSC),计数器(CNT),自动重装器(ARR)。这三个单元都是16位的,也就是说它们的取值范围都是0~65535,具体实现的功能在下面会提到。
计数器分三种模式:
1.向上计数:从某个数(初值)减到零,产生一个计数器更新事件后重装载初值;
2.向下计数:从零加到某个数(终值),产生一个计数器更新事件后重装载零;
3.中央对齐:也叫向上/向下计数模式;计数器从0开始计数到自动加载的值(TIMx_ARR寄存器)−1,产生一个计数器更新事件,然后向下计数到1并且产生一个计数器更新事件;然后再从0开始重新计数。
3.定时器资源:
定时器分为三种,分别是基本定时器,通用定时器,高级定时器,这三个定时器分别有着不同的功能
在c8t6中,一共有四个定时器,分别是高级定时器(TIM1),通用定时器(TIM2,TIM3,TIM4)。
3.1:基本定时器
虽然说c8t6并没有搭载基本定时器,但是通过基本定时器理解时基单元会更清晰一些。
基本定时器中有三个重要的寄存器,分别是预分频器、计数器、自动重装寄存器,构成了最基本的计数计时电路,这块电路叫做时基单元。
预分频器(PSC): 从图中可以看见,时基单元的输入连接的是CK_INT,来源是RCC_TIMxCLK,频率值一般都是系统的主频72MHz。 预分频器可以将72MHZ分频,要注意的是,这个寄存器写入的值是实际分频程度-1,例如1分频,也就是不分频时,PSC的值为0;要2分频输出36MHZ的频率时,PSC的值为1。所以输出频率=输入频率/(PSC+1)。
计数器(CNT):可以对预分频后的计数时钟进行计数,计数时钟每来一个上升沿,计数器的值就加1,因为计数器是16位,范围在0~65535,超过65535,计数器就会回到0重新开始。
自动重装载器(ARR):是计数器计数的目标值,当计数到自动重装载值时,就会产生中断开始下一次计时。
在此补充一下,hz是频率的单位,1hz就是每秒1次,60hz就是每秒60次,单位的换算:1mhz=1000000hz。所以72MHZ的意思就是每秒有72000000次方波。
3.2:通用定时器
通用定时器的框图就要复杂很多了,很多东西我也不太清楚,对照框图大概说一下
通用定时器的四大部分(红框):
①:时钟产生部分: a.内部时钟
b.外部时钟挂载:ETR引脚
通过引脚定义图可以看到,ETR引脚是在PA0上的,也就是我们如果要外接外部时钟,接在ETR引脚上就可以了
c.ch1引脚的边沿
d.ch1引脚和ch2引脚
其实目前来说用的最多的就是内部时钟了,其他几个了解一下就可以了。
②:时基单元:这一部分和基本定时器一样,前面已经说过了。
③:输入捕获部分:输入捕获可以通过检测通道输入引脚出现的指定电平跳变,通过计时器内部计时测量PWM波形的频率、占空比、脉冲问题、电平持续时间等参数。后面的章节会讲到
④:输出比较部分:输出比较可以通过CNT与比较(CCR)寄存器的关系来对输出电平进行置1,置0或翻转的操作,用于输出一定频率和占空比的PWM波形。
高级定时器就不说了,因为我也没有用过,以后用到的话会补充。
4.总结:
定时器的结构看起来很复杂,但在我们应用的时候相对会简单一些,只需要进行一些简单的计算,修改PSC,ARR,CCR的值就可以达到我们想要的效果。
嵌入式学习——stm32(3.1)定时器基础相关推荐
- 嵌入式学习⑤——STM32嵌入式应用系统设计
目录 前言 一.基于跨平台多类型代码编辑器VScode 1.VScode的安装 2.Ubuntu中用vscode编译调试C\C++ 二.Proteus仿真--STM32流水灯 1.创建工程 2.配置实 ...
- 基于STM32G431嵌入式学习笔记——七、定时器定时
一.题目引入 上述为第13届蓝桥杯省赛节选内容,为了研究定时器的机理并独立书写计时函数,上述内容简化为以下要求: ①按下B4按键,LD1点亮5s后熄灭 ②按下B3按键,LD2以0.1秒为间隔切换亮灭状 ...
- 嵌入式学习之TCP和UDP基础理解
鸡汤:若有一个柠檬,那就做成柠檬水. 学习梳理目录: 1. 传输层的作用2. 端口的理解3. UDP学习4. TCP学习5. UDP首部学习6. TCP首部学习 传输层的作用 首先应说明的是TCP/I ...
- 蓝桥杯嵌入式学习STM32之外部中断EXTI详解
先说点题外话. !是取逻辑反的意思, ~是按位取反的意思 !0x01=0: ~0x01=1111 1110; 进入正题 基本概念 STM32的每个IO都可以作为外部中断输入. STM32的中断控制器支 ...
- 嵌入式学习——stm32(2.2)中断实验
在上一篇说到了配置外部中断需要依次配置GPIO->AFIO->EXTI->NVIC,现在我们以按键通过外部中断控制灯的亮做例子. 目录 1.GPIO的配置 2.AFIO的配置 3.E ...
- 嵌入式学习——stm32(1.2)GPIO应用
1.GPIO的初始化: 逻辑: 1.使能时钟 2.引用结构体 3.配置结构体 4.调用库函数进行初始化 时钟使能: RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIO ...
- STM32的定时器详解(嵌入式学习)
STM32的定时器详解 0. 前言 1. Systick定时器 概念 工作原理 时钟基准 Systick练习 2. HAL_Delay函数分析 3. 定时器 基本概念 定时器分类 定时器组成 计数器 ...
- 嵌入式学习笔记——STM32的USART通信概述
文章目录 前言 常用通信协议分类及其特征介绍 通信协议 通信协议分类 1.同步异步通信 2.全双工/半双工/单工 3.现场总线/板级总线 4. 串行/并行通信 5. 有线通信.无线通信 STM32通信 ...
- 知乎嵌入式大杂烩:学习STM32的一点经验分享
前言 前两天在群里看到群友们在讨论学习STM32的话题,并且今天也有一位机械专业的准研究生也问了STM32的入门问题.正好我也有一点经验,所以试着分享一下这个话题.我也不是什么大神,只是一名普通的工程 ...
最新文章
- Caffe源码中caffe.proto文件分析
- 每个人都有一个“内外引擎”
- 来活儿了!赶紧检查下代码里有没有脏话...
- spaugment--生成最小二乘增广矩阵
- 锻炼产品架构思维的4个维度
- 增加数据_数据来了!集装箱运量猛增,到底增加了多少!?
- vb.net 弹出对话框 修改按钮名_Microsoft Excel怎么批量快速修改批注?
- 用Alamofire进行网络请求的一段代码解析(一)
- html4音频插件,js音频插件audio.js
- ARM 汇编详解 -- 体系结构与编程
- 技术经理应该具备哪些方面的能力
- 对近来安庆天气特征的总结(夏季)
- Kali渗透Windows Server 2003
- 腾讯bugly的使用,以及全局抓包配置
- 从智慧零售,看腾讯的数字化转型之道
- 编译低版本的binutils-2.16.1错误:ld.texinfo:1592: @itemx must follow @item
- html 字体模糊,详解css3使用transform出现字体模糊的解决办法
- arduino uno r3单片机封装图_Arduino教程 Lesson 1 驱动安装及下载Blink程序
- 巴特沃斯滤波器使用-butter
- U盘装Ubuntu系统报错Failed to load ldlinux.c32