1、通用定时器(TIM)

通用定时器是一个通过可编程预分频器驱动的16位自动装载计数器构成。
它适用于多种场合,包括测量输入信号的脉冲长度(输入捕获)或者产生输出波形(输出比较和
PWM)。
使用定时器预分频器和RCC时钟控制器预分频器,脉冲长度和波形周期可以在几个微秒到几个
毫秒间调整。
每个定时器都是完全独立的,没有互相共享任何资源。

通用定时器框图

2、配置流程

1 、开定时器4的时钟

 RCC_APB1PeriphClockCmd( RCC_APB1Periph_TIM4,ENABLE);    //开系统时钟

2、 定时器4初始化
函数TIM_TimeBaseInit :

参数介绍:

TIM_TimeBaseInitTypeDef structure TIM_TimeBaseInitTypeDef
定义于文件“stm32f10x_tim.h”:
typedef struct { u16 TIM_Period; u16
TIM_Prescaler; u8 TIM_ClockDivision;
u16 TIM_CounterMode;
}TIM_TimeBaseInitTypeDef;

TIM_Period TIM_Period 设置了在下一个更新事件装入活动的自动重装载寄存器周期的值。它的取值必须在 0x0000 和0xFFFF 之间。 TIM_Prescaler TIM_Prescaler 设置了用来作为 TIMx时钟频率除数的预分频值。它的取值必须在 0x0000 和 0xFFFF 之间。 TIM_ClockDivision TIM_ClockDivision 设置了时钟分割。该参数取值见下表
TIM_TimeBaseInitTypeDef
TIM_TimeBaseStructure;
TIM_TimeBaseStructure.TIM_Period = 7200-1;
TIM_TimeBaseStructure.TIM_Prescaler = 10000;

  TIM_TimeBaseInitTypeDef.TIM_TimeBaseStructure; TIM_TimeBaseStructure.TIM_Period = 7200-1;   //设置pscTIM_TimeBaseStructure.TIM_Prescaler = 10000;  //设置ARR = 1000//7200/72MHZ*10000=1s 即1s钟中断一次
TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1; //时钟分频英子位为1TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; //向上计数TIM_TimeBaseInit(TIM4, & TIM_TimeBaseStructure);   //调用初始化函数//使能接收中断

3 、打开更新中断(NVIC开关和定时器外设的中断源开关)

TIM_ITConfig(TIM4,TIM_IT_Update, ENABLE);
NVIC_SetPriority(TIM4_IRQn, NVIC_EncodePriority (7-2, 1, 2)); //将合成的优先级设置给USART1中断源
NVIC_EnableIRQ(TIM4_IRQn);                        //使能NVIC控制器中断开关,这一步必须要

4、失能定时器4

TIM_Cmd(TIM4,DISABLE);                               //先失能

5、编写中断服务函数

void TIM4_IRQHandler()
{  if(TIM_GetITStatus(TIM4, TIM_IT_Update) != RESET){      //这里写中断结束后需要执行的程序// printf("aaaaaaaaaa\r\n");}TIM_ClearITPendingBit(TIM4, TIM_FLAG_Update);}

代码仓库:https://gitee.com/bigtiger_king/stm32_-tima/tree/master/

STM32F103 TIM4定时器相关推荐

  1. STM32F103通用定时器使用

      STM32F103单片机中定时器分为3种,高级定时器.通用定时器.基本定时器.   通用定时器是一个通过可编程预分频器驱动的16位自动装载计数器构成.它适用于多种场合,包括测量输入信号的脉冲长度( ...

  2. STM32F103基本定时器使用

      STM32F103单片机中定时器分为3种,高级定时器.通用定时器.基本定时器.   基本定时器TIM6和TIM7各包含一个16位自动装载计数器,由各自的可编程预分频器驱动.它们可以作为通用定时器提 ...

  3. STM32F103高级定时器使用

      STM32F103单片机中定时器分为3种,高级定时器.通用定时器.基本定时器.   高级控制定时器(TIM1和TIM8)由一个16位的自动装载计数器组成,它由一个可编程的预分频器驱动.它适合多种用 ...

  4. stm32f103基本定时器的使用

    学习使用笔记:复制粘贴久了有些忘记如何配置了,复制了框图.官方代码与寄存器学习和回忆 基本定时器功能框图: 1:打开来自RCC的时钟(RCC_APB1PeriphClockCmd) 固件库代码与寄存器 ...

  5. STM32F103利用定时器编程实现输出一路PWM波形

    目录 一.PWM简介 二.STM32F1 PWM介绍 三.PWM输出配置步骤 四.实现代码 五.实现效果 六.参考资料 一.PWM简介 PWM是 Pulse Width Modulation 的缩写, ...

  6. STM32F103 - CubeMX 的使用实例详细(04.5)- STM32F103的 - 定时器设定详细解释 - 定时器相关的HAL接口函数 - 定时器的中断

    前言:本文介绍STM32 定时器中断控制的HAL 接口定义: 1 该驱动接口能实现的主要功能: 1.1 有哪些驱动 /**   ************************************ ...

  7. STM32 - CubeMX 的使用实例详细(04.1)- STM32F103的 - 定时器设定详细解释 - PWM波的产生 - 频率占空比的设定 - 软件代码分析

    前言:本文详细条例STM32 103定时器的设定 1 定时器简介 中等容量的STM32F103xx增强型系列产品包含1个高级控制定时器.3个普通定时器,以及2个看门 狗定时器和1个系统嘀嗒定时器. 下 ...

  8. STM32F103高级定时器死区时间计算

    官方数据手册的说明不容易看懂,举的例子与我的应用场合也不一致,我使用的是72MHz的晶振,讲一讲我的死区时间是怎么算出来的. DT死区时间: TDTS为系统时钟周期时长: TDTG为系统周期时长乘以倍 ...

  9. STM32F103高级定时器死区时间的计算

    看了一些网上讲死区时间计算的教程,觉得讲述的不是很清楚,所以在此用我自己理解的方式讲述一遍,如有错误,请读者赐教. 死区时间的设置:由寄存器"TIM1和TIM8刹车和死区寄存器TIMX_BD ...

最新文章

  1. iOS8.0 之后指纹解锁
  2. vue脚手架项目技术集合
  3. 1.4 matlab数值数据的类型分类
  4. ps -aux 和ps -elf 区别(查看进程)
  5. 黑龙江大学计算机调剂信息,黑龙江大学各学院2019考研调剂信息汇总(4月1日)
  6. 病毒侵袭持续中(HDU-3065)
  7. The Rise of Worse Is Better 论文-学习笔记
  8. Python3,10行代码,给pdf文件去水印,再也不用花费冤枉钱了。
  9. QT从字体名获取字库文件路径(从宋体获取到simsun.ttc)
  10. Ant Design Vue 菜单刷新后保持菜单选中/点击菜单,收起其他展开的所有菜单,保持菜单聚焦简洁
  11. UWP应用安装提示证书问题的解决办法
  12. linux mint借用deepin-wine安装QQ/微信
  13. web程序中的用户注册
  14. 环境诉讼与当事人适格
  15. OpenWRT 学习笔记 -- 用户自定义添加app的开机自启动
  16. 分销商城系统开发应用概述详解
  17. NSDate-日期类nbsp;OC——第七天(1)
  18. 微信小程序全栈开发实践 第二章 微信小程序组件介绍及使用 -- 2.9 页面链接组件,如何自定义一个导航栏?
  19. 学术期刊的概念、分类,计算机类主要期刊索引和机构
  20. 计算机表示的数据分类,数据表示与数据类型

热门文章

  1. php ora-12154,ORA-12154 和 TNS-03505 监听错误的解决方法
  2. 无源波分和彩光模块_纯无源粗波分复用器(CWDM)部署4/5G网络,节省光缆资源...
  3. 解决numpy报错UFuncTypeError: Cannot cast ufunc ‘add‘ output from dtype(‘x‘) to dtype(‘x‘)
  4. 【前端必备】七、页面性能优化
  5. 观察者模式在android网络监控下的运用
  6. [洛谷P1342]请柬
  7. 并发编程实战——锁分段
  8. 工作流的ReplicatorActivity
  9. DMA流程简介--CPU/内存/网卡之间的交互
  10. linux之EXT2文件系统--理解block/block group/索引结点inode/索引位图