2023版 STM32实战5 基本定时器中断

基本定时器简介与特性


-1-时钟可分频

-2-计数模式只可以选择累加

-3-只可以用来定时(含中断)

查看时钟源


如图定时器7的时钟最大为72MHZ

在这里插入图片描述

定时时间的计算


通用定时器的时间计算公式为 Tout = ((arr+1)(psc+1))/Tclk ;

arr为重载值

psc为时钟分频系数

Tclk为时钟频率

代码编写(已经验证,可直接拷贝使用


这是一个在定时器7的中断函数中翻转两个LED的demo

timer.c文件
#include "timer.h"// 通用定时器的时间计算公式为 Tout = ((arr+1)(psc+1))/Tclk ;
void Timer_7_Init(uint16_t arr,uint16_t psc)
{//开启定时器7时钟RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM7,ENABLE);//定义结构体TIM_TimeBaseInitTypeDef Timer7_CFG;//预分频系数Timer7_CFG.TIM_Prescaler = psc;//定义重装载值Timer7_CFG.TIM_Period = arr;//设置计数模式,通用计时器只支持累加Timer7_CFG.TIM_CounterMode = TIM_CounterMode_Up;//调用初始化函数,把值写入寄存器TIM_TimeBaseInit(TIM7,&Timer7_CFG);//配置定时器为更新中断TIM_ITConfig(TIM7,TIM_IT_Update,ENABLE);//配置NVIC优先级NVIC_InitTypeDef NVIC_CFG;NVIC_CFG.NVIC_IRQChannel = TIM7_IRQn;NVIC_CFG.NVIC_IRQChannelCmd = ENABLE;NVIC_CFG.NVIC_IRQChannelSubPriority=0;NVIC_CFG.NVIC_IRQChannelPreemptionPriority=0;//调用初始化函数,把值写入寄存器NVIC_Init(&NVIC_CFG);	//打开定时器,即开始计时TIM_Cmd(TIM7,ENABLE);
}void TIM7_IRQHandler(void)
{//检查是否为更新中断if(TIM_GetITStatus(TIM7,TIM_IT_Update)==SET){//清除中断标志位TIM_ClearFlag(TIM7,TIM_FLAG_Update);GPIOB->ODR^=(1<<5);GPIOE->ODR^=(1<<5);}}

main.c文件

#include "stm32f10x.h"
#include "timer.h"
#include "delay.h"void LED_Init(void)
{GPIO_InitTypeDef GPIO_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIOE, ENABLE);GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;GPIO_Init(GPIOB, &GPIO_InitStructure);GPIO_Init(GPIOE, &GPIO_InitStructure);}int main(void)
{	delay_init();LED_Init();NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);Timer_7_Init(4999,7199);while(1);
}

工程获取

三连后点击下方头像

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/148274.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Eureka

大家好我是苏麟今天带来Eureka的使用 . 提供者和消费者 在服务调用关系中&#xff0c;会有两个不同的角色&#xff1a; 服务提供者&#xff1a;一次业务中&#xff0c;被其它微服务调用的服务。&#xff08;提供接口给其它微服务&#xff09; 服务消费者&#xff1a;一次业务…

【11】c++设计模式——>单例模式

单例模式是什么 在一个项目中&#xff0c;全局范围内&#xff0c;某个类的实例有且仅有一个&#xff08;只能new一次&#xff09;&#xff0c;通过这个唯一的实例向其他模块提供数据的全局访问&#xff0c;这种模式就叫单例模式。单例模式的典型应用就是任务队列。 为什么要使…

剑指offer——JZ18 删除链表的节点 解题思路与具体代码【C++】

一、题目描述与要求 删除链表的节点_牛客题霸_牛客网 (nowcoder.com) 题目描述 给定单向链表的头指针和一个要删除的节点的值&#xff0c;定义一个函数删除该节点。返回删除后的链表的头节点。 1.此题对比原题有改动 2.题目保证链表中节点的值互不相同 3.该题只会输出返回…

SQL Server不允许保存更改的解决方法

SQL Server不允许保存更改的解决方法

Nginx高级 第一部分:扩容

Nginx高级 第一部分&#xff1a;扩容 通过扩容提升整体吞吐量 1.单机垂直扩容&#xff1a;硬件资源增加 云服务资源增加 整机&#xff1a;IBM、浪潮、DELL、HP等 CPU/主板&#xff1a;更新到主流 网卡&#xff1a;10G/40G网卡 磁盘&#xff1a;SAS(SCSI) HDD&#xff08;机械…

window安装压缩版postgresql

环境&#xff1a; window 11 专业版postgresql-16.0-1-windows-x64-binaries.zip 一、下载 1.1 从官网下载 https://www.postgresql.org/download/windows/ 1.2 从百度网盘下载 链接&#xff1a;https://pan.baidu.com/s/1fmQbgWSzX4hN07Lgdzfz0g?pwddzyy 提取码&#…

竞赛选题 机器视觉人体跌倒检测系统 - opencv python

0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; 机器视觉人体跌倒检测系统 该项目较为新颖&#xff0c;适合作为竞赛课题方向&#xff0c;学长非常推荐&#xff01; &#x1f947;学长这里给一个题目综合评分(每项满分5分) 难度系数&…

DevEco Studio设置Nodejs提示路径只能包含英文、数字、下划线等

安装DevEco Studio 3.1.1 Release 设置Nodejs路径使用nodejs默认安装路径 &#xff08;C:\Program Files\nodejs&#xff09; 提示只能包含英文、数字、下划线等 , 不想在安装nodejs请往下看 nodejs默认路径报错 修改配置文件 1、退出DevEco Studio 2、打开配置文件 cmd控制台…

linux入门---信号的保存和捕捉

目录标题 信号的一些概念信号的保存pending表block表handler表 信号的捕捉内核态和用户态信号的捕捉 信号的一些概念 1.进程会收到各种各样的信号&#xff0c;那么程序对该信号进行实际处理的动作叫做信号的递达。 2.我们之前说过当进程收到信号的时候可能并不会立即处理这个信…

[BJDCTF2020]Mark loves cat

先用dirsearch扫一下&#xff0c;访问一下没有什么 需要设置线程 dirsearch -u http://8996e81f-a75c-4180-b0ad-226d97ba61b2.node4.buuoj.cn:81/ --timeout2 -t 1 -x 400,403,404,500,503,429使用githack python2 GitHack.py http://8996e81f-a75c-4180-b0ad-226d97ba61b2.…

@Slf4j注解的使用说明

Slf4j的作用 该注解的作用主要是操作在idea中的控制台中打印的日志信息。 等价于代码&#xff1a; private final Logger logger LoggerFactory.getLogger(当前类名.class); 使用指定类初始化日志对象&#xff0c;在日志输出的时候&#xff0c;可以打印出日志信息所在类 当…

程序在线报刊第一期

文章目录 程序在线报刊第一期排序算法&#xff1a;优化数据处理效率的核心技术回顾区块链技术&#xff1a;去中心化引领数字经济新时代展望AI未来&#xff1a;智能化时代的无限可能 程序在线报刊第一期 排序算法&#xff1a;优化数据处理效率的核心技术 近年来&#xff0c;随…

软件设计师_计算机网络_学习笔记

文章目录 4.1 网路技术标准与协议4.1.1 协议4.1.2 DHCP4.1.3 DNS的两种查询方式 4.2 计算机网络的分类4.2.1 拓扑结构 4.3 网络规划与设计4.3.1 遵循的原则4.3.2 逻辑网络设计4.3.3 物理网络设计4.3.4 分层设计 4.4 IP地址与子网划分4.4.1 子网划分4.4.2 特殊IP 4.5 HTML4.6 无…

ReactNative学习笔记

文章目录 基础环境搭建创建项目安装vscode插件调试工具基础语法掌握ReactStyleSheetRN中的样式和CSS的不同通过style属性直接声明在style属性中调用StyleSheet声明的样式 Flexbox术语属性响应式布局 组件和API简介核心组件**最常用的一些核心组件**各核心组件的演示代码Alert和…

MyBatisPlus(八)范围查询

说明 范围查询&#xff0c;包括&#xff1a; 大于大于等于小于小于等于在范围内在范围外 大于&#xff1a;gt 代码 Testvoid gt() {LambdaQueryWrapper<User> wrapper new LambdaQueryWrapper<>();wrapper.gt(User::getAge, 20);List<User> users mapp…

QT实现TCP服务器客户端的实现

ser&#xff1a; widget.cpp&#xff1a; #include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this);//实例化一个服务器server new QTcpServer(this);// 此时&#xf…

逆强化学习

1.逆强化学习的理论框架 1.teacher的行为被定义成best 2.学习的网络有两个&#xff0c;actor和reward 3.每次迭代中通过比较actor与teacher的行为来更新reward function&#xff0c;基于新的reward function来更新actor使得actor获得的reward最大。 loss的设计相当于一个排序问…

CocosCreator3.8研究笔记(二十五)CocosCreator 动画系统-2d骨骼动画spine

大家都知道&#xff0c;在游戏中 一般用帧动画或者骨骼动画&#xff0c;实现 人物的行走、奔跑、攻击等动作。 帧动画&#xff0c;在上一篇已经做了介绍&#xff0c;感兴趣的朋友可以前往阅读&#xff1a; CocosCreator3.8研究笔记&#xff08;二十四&#xff09;CocosCreator …

C++_pen_重载(1)

普通运算符重载 C准许以运算符命名函数 string love "i";love " love";//(love, " love"); love " you";//(love, " you");cout<< "i love you";// <<(cout, "i love you");运算符分类 …

RabbitMQ安装与简单使用

安装 下载资源 可以访问官网查看下载信息rabbitmq官网 选择合适的版本&#xff0c;注意&#xff1a;rabbitmq需要下载一个Erlang才能使用 我自己是在一下两个连接中下载的 rabbitmq 3.8.8 erlang 21.3.8.15 需要下载其他版本的同学注意erlang版本是否匹配&#xff0c;可以访…