STM32 进阶 定时器

ops/2025/3/11 0:21:33/

stm32中定时器大概分为4类

1、系统定时器:属于arm内核,内嵌在NVIC中

2、高级定时器:可以用来刹车和死区

3、通用定时器:可以用来输出pwm方波

4、基本定时器:只能记数

系统定时器注意:

1、系统定时器多长时间触发中断计算:首先它是24位向下递减的计数器,所以它最大时2的24次方,计数器每计数一次的时间为1s / SYSCLK---下面是验算过程,可以看到如果时72M时钟频率,那么多大是233ms触发中断。---通过这个计算可以计算其reloard的值配置多少。

 2、hal库中的NVIC中断system tick使能和寄存器STRL中断TICKINT使能位同时置1才算开启中断

3、内核中断没有明确的标识位,count flag时计数标志位,不是中断标志位,所以使用systick中断时,不需要标志位清零操作。

4、可以使用systick_config函数,直接配置systick寄存器,只需要传输重装在寄存器的值也就是reload 的值。

基本定时器:tim6/tim7

16位自动装载计数器

向上计数

没有外部引脚,所以只能计时,且不能对外部脉冲就行计数

功能:

定时中断、主模式、触发DAC

注意

通过手册可以知道不管什么定时器都经过分频变成72MHz

基本定时器:只有一个时钟源就是总线时钟、一般为72MHz,而高级和通用可以通过引脚来调节

基本定时器的内部的时基单元要比systick多一个预分频器,可以进行自我调节---计数器频率

还有影子寄存器:防止定时器出现不可控的状态(计数器跑飞)

通用定时器:tim2/3/4/5

功能:

1、多种时钟源

2、计数方向:向上/向下计数,也可以先加后减---但是我们通常配置向上计数和基本定时器一样

3、输出捕获

4、输出比较和pwm生成:输出比较功能专门用来生成pwm方波的

5、支持针对定位的增量(正交)编码器和霍尔传感器电路

注意

1、每个通用定时器都有四个通道,但是只有通道1和2可以作为时钟信号源---对标72MHz

2、PWM(脉冲宽度调制 Pulse-width modulation)---脉冲也就是电平,pwm就是控制电平的持续时长

3、PWM有三个参数

周期:两个上升沿或者两个下降沿的时间

频率:周期的倒数,1秒多少个周期

占空比:高电平在整个周期站的时间---高电平宽度T---如果时电机那么它影响转速,如果是led等它影响亮度。

  4、输出比较功能如何输入pwm方波,因为有四个通道所以可以同时实现四路比较,比较寄存器的值和计数器的值进行比较,(>=<)不同,产生不同的输出,高电平或者低电平。总过8个模式,最重要的是3个。最最常用的是模式7

翻转比较:等于会进行高低电平翻转最后的结果就是占空比为50%。

模式7pwm模式1:CNT<CCR 输出有效电平,CNT>= CCR输出无效电平----OCxM配置110

模式8PWM模式2:CNT<CCR 输出无效电平,CNT>= CCR输出有效电平

5、捕获(输入)和比较(输出)只能选一个

高级定时器:tim1/tim8

功能:

1、通用寄存器所有功能

2、死区时间可编程的互补输出

3、短路输入信号(刹车输入信号)

4、重复计数器。---计数器减到0,重复计数器减1,直到到0才触发中断。

注意:

1、高级定时器的通道1/2/3可以分别输出2路互补信号,互补信号用来驱动H桥电路,H桥电路通常用于驱动电流较大的负载,比如电机。

2、死区时间,是指在互补信号中的一条信号加一掉段延迟,防止两条信号线同时产生跳变,保护了H桥电路,也就是说,在延迟的这段时间H桥电路中的MOS管可以进行放电,保护H桥电路。


http://www.ppmy.cn/ops/164797.html

相关文章

nginx配置反向代理服务器,实现在https网站中请求http资源

文章目录 一、前言二、Nginx反向代理的工作原理三、Nginx反向代理的主要功能‌四、Nginx反向代理的配置和使用场景五、实战配置5.1 首先&#xff0c;修改宝塔面板配置5.2 接着配置代理服务器5.3 完成上面所有配置后5.4最后还要在原来的index.html文件里添加5.5 或者可以操作服务…

【C++】:STL详解 —— 红黑树封装map和set

目录 红黑树的源代码 正向迭代器的代码 反向迭代器的代码 set的模拟实现 map的模拟实现 红黑树的源代码 #pragma once #include <iostream>using namespace std; // set ->key // map ->key/value// set ->key // map ->key/valueenum Colour {RED,BLAC…

小程序 -- uni-app开发微信小程序环境搭建(HBuilder X+微信开发者工具)

目录 前言 一 软件部分 1. 微信开发者工具 2. HBuilder X 开发工具 二 配置部分 1. 关于 HBuilder X 配置 2. 关于 微信开发工具 配置 三 运行项目 1. 新建项目 2. 代码编写 3. 内置浏览器 编译 4. 配置小程序 AppID获取 注意 四 实现效果 前言 uni-app开发小程…

C++20 模块:告别头文件,迎接现代化的模块系统

文章目录 引言一、C20模块简介1.1 传统头文件的局限性1.2 模块的出现 二、模块的基本概念2.1 模块声明2.2 模块接口单元2.3 模块实现单元 三、模块的优势3.1 编译时间大幅减少3.2 更好的依赖管理3.3 命名空间隔离 四、如何使用C20模块4.1 编译器支持4.2 示例项目4.3 编译和运行…

爬虫案例九js逆向爬取CBA中国篮球网

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、CBA网站分析二、代码 前言 提示&#xff1a;这里可以添加本文要记录的大概内容&#xff1a; 爬取CBA中国篮球网 提示&#xff1a;以下是本篇文章正文内容…

K8S单机部署

主线 :部署简单的单节点k8s - sowler - 博客园 学习网址&#xff1a;为什么我不能获取到镜像&#xff0c;ImagePullBackoff | Kuboard docker镜像源&#xff1a;https://chuxia.blog.csdn.net/article/details/145090710?spm1001.2101.3001.6650.3&utm_mediumdistribute…

每日一题-----面试

一、什么是孤儿进程&#xff1f;什么是僵尸进程&#xff1f; 1.孤儿进程是指父进程在子进程结束之前就已经退出&#xff0c;导致子进程失去了父进程的管理和控制&#xff0c;成为了 “孤儿”。此时&#xff0c;这些子进程会被系统的 init 进程&#xff08;在 Linux 系统中&…

JJJ:linux sysfs相关

文章目录 1.sysfs&#xff08;属性&#xff09;文件的创建、读、写1.1 创建流程1.2 open流程1.3 read流程 2.补充2.1 sysfs下常见目录介绍2.2 属性相关2.2.1 简介2.2.2 attribute文件的创建 2.3 sysfs目录如何创建的 1.sysfs&#xff08;属性&#xff09;文件的创建、读、写 1…