l 使能定时器时钟。

  RCC_APB1PeriphClockCmd();

l 初始化定时器,配置ARR,PSC。

  TIM_TimeBaseInit();

l 开启定时器中断,配置NVIC。

  void TIM_ITConfig();

  NVIC_Init();

l 使能定时器。

  TIM_Cmd();

l 编写中断服务函数。

  TIMx_IRQHandler();

l 源代码:

 //Tout(溢出时间)=(ARR+1)(PSC+1)/Tclk
//500ms -> (4999+1)( 7199+1)/72000000 = 0.5s = 500ms
void TIM3_Int_Init(u16 arr,u16 psc)
{
TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
NVIC_InitTypeDef NVIC_InitStructure; RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE); //时钟使能 //定时器TIM3初始化
TIM_TimeBaseStructure.TIM_Period = arr; //设置更新装载值
TIM_TimeBaseStructure.TIM_Prescaler =psc;//设置预分频值
TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1; //设置时钟分割
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; //TIM向上计数模式
TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure); TIM_ITConfig(TIM3,TIM_IT_Update,ENABLE ); //允许更新中断 //中断优先级NVIC设置
NVIC_InitStructure.NVIC_IRQChannel = TIM3_IRQn; //TIM3中断
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = ; //0抢占优先级
NVIC_InitStructure.NVIC_IRQChannelSubPriority = ; //响应优先级
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //IRQ通道势能
NVIC_Init(&NVIC_InitStructure); //初始化NVIC寄存器 TIM_Cmd(TIM3, ENABLE); //使能TIM
}
//定时器3中断服务程序
void TIM3_IRQHandler(void)
{
if (TIM_GetITStatus(TIM3, TIM_IT_Update) != RESET) //检查是否更新中断
{
TIM_ClearITPendingBit(TIM3, TIM_IT_Update ); //清楚更新中断
LED1=!LED1;
}
}
int main(void)
{
delay_init();
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//抢占和响应优先级的范围0~3
uart_init();
LED_Init();
TIM3_Int_Init(,);
while()
{
LED0=!LED0;
delay_ms();
}
}

[STM32F103]定时器中断的更多相关文章

  1. (stm32f103学习总结)—stm32定时器中断

    一.定时器介绍 STM32F1的定时器非常多,由2个基本定时器(TIM6.TIM7).4个通 用定时器(TIM2-TIM5)和2个高级定时器(TIM1.TIM8)组成.基本定 时器的功能最为简单,类似 ...

  2. STM32F103外部中断编程

    STM32F103外部中断编程   中断,顾名思义就是停下手头的活,去干另外一件急活,干完急活然后回来继续干手头的活. 单片机和人一样,有时候也有更急的程序需要执行,执行完之后再回来执行之前正在执行的 ...

  3. 用STM32定时器中断产生PWM控制步进电机

    控制步进电机可以使用PWM.定时器中断.延时,这里用的就是定时器中断来让它转动. 一.硬件部分1.使用的硬件板子用的是正点原子的STM32F103 mini板,驱动器是DM420(DM420驱动器资料 ...

  4. 4-MSP430定时器_定时器中断

    一开始没写好就上传了,,,,,,,,这次来个全的 自己学MSP430是为了写一篇关于PID的文章,需要430在proteus上做仿真,一则认为在自动控制算法上PID真的很经典,PLC设备上大多是模块式 ...

  5. stm32定时器中断类型分析

    一直在用的stm32定时器的中断都是TIM_IT_Update更新中断,也没问为什么,直到碰到有人使用TIM_IT_CC1中断,才想到这定时器的中断类型究竟有什么区别,都怪当时学习stm32的时候不够 ...

  6. 提升效率(时间准确性),减少时间和资源的消耗——由89C52/89C51的定时器中断引出的一些问题

    尽量用最少的文字描述清楚问题. 事情起因是这样的: 要做遥控小车的平台迁移,STM32开发板无法方便地供电,因此又拿出了尘封的51(STC89C52RC),搭配上最小系统板就可以用排针加杜邦线供电了. ...

  7. Arduino101学习笔记(十二)—— 101定时器中断

    一.API 1.开定时器中断 //*********************************************************************************** ...

  8. 十天学会单片机Day1点亮数码管(数码管、外部中断、定时器中断)

    1.引脚定义 P3口各引脚第二功能定义 标号 引脚 第二功能 说明 P3.0 10 RXD 串行输入口 P3.1 11 TXD 串行输出口 P3.2 12 INT0(上划线) 外部中断0 P3.3 1 ...

  9. STM32学习笔记——定时器中断(向原子哥学习)

    定时器中断 STM32 的定时器功能十分强大,有 TIME1 和 TIME8 等高级定时器,也有 TIME2~TIME5 等通用定时器,还有 TIME6 和TIME7 等基本定时器.在本章中,我们将利 ...

随机推荐

  1. webpack 代码分割一点事

    webpack 俨然已经成为前端最主流的构建工具,其功能多种多样,我们今天就来分析下关于代码分割这部分的一点事,并在最后讲述如何实现在webpack编译出的代码里手动添加一个异步chunk. 什么是c ...

  2. 当Django中Debug=False,静态文件处理方式。

    Django设置DEBUG为False时,'django.contrib.staticfiles'会关闭,即Django不会自动搜索静态文件,静态文件不能加载导致的问题有两个: 1.页面排版不正常,即 ...

  3. 部署springboot工程到linux上及遇到的坑

    一.步骤 1.将工程打成jar包 IDEA中点击file-project structure,如下图: 选择Artifacts-JAR-From modules,选择入口类Main Class,如下图 ...

  4. vue 基础重要组件 模板指令 事件绑定

    组件:data methods watch new vue({ data:{ a:1, b:[] }, methods:{ dosomething:function(){ this.a++; } }, ...

  5. 下载python包

    修改pip下载源 pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pyspider 更新pip版本 python -m pip inst ...

  6. Python_day_01

    python                                                       (1024程序员节) 语言分为很多种,但是如果要想和计算机交流,就必须知道计算 ...

  7. 用理论告诉你 三极管和MOS管的区别在哪

    在电路设计当中假设我们想要对电流中止控制,那就少不了三极管的帮助.我们俗称的三极管其全称为半导体三极管,它的主要作用就是将微小的信号中止放大.MOS管与三极管有着许多相近的地方,这就使得一些新手不断无 ...

  8. slb

    第一章 弹性负载均衡slb概要介绍 第一讲什么是弹性负载均衡slb 互联网应用的服务扩展   负载均衡诞生 slb的引出 slb产品介绍 负载均衡 server load balancer 是对多台云 ...

  9. servlete基础

    1.  使用servlet需要继承HttpServlet Servlet 生命周期 Servlet 生命周期可被定义为从创建直到毁灭的整个过程.以下是 Servlet 遵循的过程: Servlet 通 ...

  10. Window服务项目脚手架

    本人最近工作用到window服务程序,于是尝试分享下经验,开源了一个window服务脚手架项目,把window服务程序必不可少的组件集成进去,如日志组件log4net,window服务挂在后台,用日志 ...