Tim定时器初始化的方法
#include "stm32f10x.h" // Device header
void TimerInit(void)
{
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);
TIM_InternalClockConfig(TIM2);
/**********
初始化配置时基单元
TIM_Period TIM_Prescaler 描述
10000 - 1 7200 - 1; 这样就变成了1S执行一次
1000 - 1 7200 - 1; 这样就变成了100ms执行一次
10000 - 1 720 - 1; 这样就变成了100ms执行一次
********/
TIM_TimeBaseInitTypeDef TIM_TimeBaseInitTypeStructrue;
TIM_TimeBaseInitTypeStructrue.TIM_ClockDivision = TIM_CKD_DIV1; // 是否分频
TIM_TimeBaseInitTypeStructrue.TIM_CounterMode = TIM_CounterMode_Up; // 中心对齐模式1
TIM_TimeBaseInitTypeStructrue.TIM_Period = 10000 - 1; // 更新周期值
TIM_TimeBaseInitTypeStructrue.TIM_Prescaler = 7200 - 1; // 预分频器值
TIM_TimeBaseInitTypeStructrue.TIM_RepetitionCounter = 0;
TIM_TimeBaseInit(TIM2, &TIM_TimeBaseInitTypeStructrue);
// 使能中断 更新中断到NVIC的路
TIM_ITConfig(TIM2, TIM_IT_Update, ENABLE);
// NVIC优先级分组
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);
// 初始化NVIC
NVIC_InitTypeDef NVIC_InitStructrue;
NVIC_InitStructrue.NVIC_IRQChannel=TIM2_IRQn;
NVIC_InitStructrue.NVIC_IRQChannelCmd=ENABLE;
NVIC_InitStructrue.NVIC_IRQChannelPreemptionPriority=2; // 配置抢断优先级
NVIC_InitStructrue.NVIC_IRQChannelSubPriority=1; // 配置响应优先级
NVIC_Init(&NVIC_InitStructrue);
// 启动定时器
TIM_Cmd(TIM2, ENABLE);
}
// 定时器2的中断函数
void TIM2_IRQHandler(void)
{
// 检查一下中断是否真的触发了
// 如果中断2的更新中断变成set了,就可以执行中断函数了
if(TIM_GetITStatus(TIM2, TIM_IT_Update) == SET)
{
// 可以在这里执行中断事件
// 清除中断标志位
TIM_ClearITPendingBit(TIM2, TIM_IT_Update);
}
}
这样之后就可以再任何地方使用中断函数 “TIM2_IRQHandler”了。
有个小问题是,设备一上电就会执行一次中断,并没有满足条件,为了防止这件事出现可以用下面的代码来解决这个问题
// TIM初始化完成之后
TIM_ClearFlag(TIM2, TIM_IT_Update); // 加上这句话是可以防止一上电就执行了一次中断
Tim定时器初始化的方法的更多相关文章
- 【STM32H7教程】第32章 STM32H7的TIM定时器基础知识和HAL库API
完整教程下载地址:http://www.armbbs.cn/forum.php?mod=viewthread&tid=86980 第32章 STM32H7的TIM定时器基础知识和H ...
- 基于STM8的TIM定时器操作---STM8-第三章
1. 综述 STM8S提供三种类型的 TIM 定时器:高级控制型(TIM1).通用型(TIM2/TIM3/TIM5)和基本型定时器(TIM4/TIM6).它们虽有不同功能但都基于共同的架构.此共同的架 ...
- TIM定时器的应用
TIM定时器的应用 ①输入捕获的应用: 上一节,我已阐述TIM的输入捕获具体作用有两个(如下图): 对输入信号的测量: ...
- ios 上浏览器返回上一页不会刷新页面问题,页面初始化的方法不执行
https://blog.csdn.net/yang450712123/article/details/79276102 https://blog.csdn.net/Chengbin_Huang/ar ...
- 【STM32】TIM定时器
TIM定时器(TIM3为例) 初始化: A:结构体TIM_HandleTypeDef的成员: 1.*Instance:类型为TIM_TypeDef,即对TIM的寄存器的映射,通过这个成员可以操作寄存器 ...
- (转载) jQuery 页面加载初始化的方法有3种
jQuery 页面加载初始化的方法有3种 ,页面在加载的时候都会执行脚本,应该没什么区别,主要看习惯吧,本人觉得第二种方法最好,比较简洁. 第一种: $(document).ready(functio ...
- 松瀚SN8P2501 定时器初始化程序--汇编源码
/* 松瀚 SN8P2501B 定时器初始化程序 */ INI_IRQ: ;定时器T0初始化 MOV A, #01100000b ;定时器模式Fcpu/4 16M/4/4=1M 1U计一次 B0MOV ...
- C++-二维vector初始化大小方法-备忘
来源: C++——二维vector初始化大小方法 1.直接用初始化方法 名字为vec,大小为n*m,初始值为0的二维vector. vector<vector<)); 2.用resize( ...
- Linux_服务器_05_CentOS 7安装完成后初始化的方法_Linux
参考资料 1.CentOS 7安装完成后初始化的方法_Linux
- TCP定时器 之 重传/延迟ACK/保活 定时器初始化
创建socket时会创建传输控制块,之后调用初始化函数对控制块进行初始化,其中包括对定时器的初始化,tcp会调用tcp_init_xmit_timers函数来初始化这些定时器,本文将详细分析tcp_i ...
随机推荐
- feildconfig
<template> <div style="float:left;width: 100%"> <el-row> <el-col :spa ...
- MATLAB神经网络工具箱使用介绍
本文介绍MATLAB软件中神经网络拟合(Neural Net Fitting)工具箱的具体使用方法. 在MATLAB人工神经网络ANN代码这篇文章中,我们介绍了MATLAB软件中神经网络(AN ...
- hdu4135题解 容斥
Problem Description Given a number N, you are asked to count the number of integers between A and B ...
- AtCoder Beginner Contest 302 H. Ball Collector 题解 可撤销并查集
为了更好的阅读体验,请单击这里 AtCoder Beginner Contest 302 H. Ball Collector 题意跳过. 可以视作将 \(a_i, b_i\) 之间连了一条边,然后 \ ...
- 【译】Visual Studio 2022 - 17.10 性能增强
我们很高兴地宣布 Visual Studio 2022 的最新更新,它为您带来了 IDE 各个领域的一系列性能增强.在这篇博客中,我们将重点介绍17.10版本中一些最显著的改进,比如更快的 Windo ...
- 10分钟掌握Python缓存
全文速览 python的不同缓存组件的使用场景和使用样例 cachetools的使用 项目背景 代码检查项目,需要存储每一步检查的中间结果,最终把结果汇总并写入文件中 在中间结果的存储中 可以使用co ...
- C++ 史上首次超越 C,Python 第二!
TIOBE 公布了 2024 年 6 月的编程语言排行榜--C++ 史上首次超越 C,跃至榜二,仅次于 Python. C++ 是一种广泛应用于嵌入式系统.游戏开发和金融交易软件等领域的语言,在本月成 ...
- 【Autoware】Autoware安装教程
此篇主要是从自己的csdn copy 在博客园上备份一下哈~ 前提:大家需要换源[软件源和pip源]:git clone的时候走博主给的Gitee的链接吧 不然得等个十万年... 如果想看最终是啥样的 ...
- 微服务网关Gateway使用
为什么需要网关? Gateway网关是我们服务的守门神,所有微服务的统一入口. 网关的核心功能特性 请求路由和负载均衡 一切请求都必须先经过gateway,但网关不处理业务,而是根据某种规则,把请求转 ...
- 4. 简明说一下 CSS link 与 @import 的区别和用法?
两者的基本语法 link语法结构 <link href="外部CSS文件的URL路径" rel="stylesheet" type="text/ ...