1.定时器功能:

定时、输出比较、输入捕获、互补输出

分类:
基本定时器(定时)
通用定时器(定时、输出比较、输入捕获)
高级定时器(定时、输出比较、输入捕获、互补输出)

F103系列的开发板一般是俩个高级定时器TIM1、TIM8;4个通用定时器TIM2/3/4/5;2个基本定时器TIM6/7

而根据容量的大小,又稍有区别。
STM32S103RBT6开发板只有TIM1/2/3/4

二、基本定时器:

1.16位,TIM6/7,只能向上计数
2.无GPIO引脚,属于内部资源
3.挂接在APB1上,时钟来自PCLK1,但频率是72MHz(原因如图),可1~65536分频
4.计数器时钟=时钟源/(分频系数+1),则计数1次时间就是 1/计数器时钟

例:
如果要定时1ms,时钟源的72MHz不能改动,可以改的是分频系数和重装载的值。如:
令PSC=72-1=71,定时器频率为72/(71+1)=1MHz。
则一次计数为1us。ARR值设置为1000,则可以定时1ms。

typedef struct
{uint16_t TIM_Prescaler;    //分频因子                                72-1     即频率为1MHz,即1us    uint16_t TIM_CounterMode;      //计数模式(基本定时器只能向上)      向上/向下(基本定时器可以不配置)uint16_t TIM_Period;      //自动重装载值                             1000-1   计数1000次,即1ms uint16_t TIM_ClockDivision;  //外部输入时钟分频因子(基本定时器没有)uint8_t TIM_RepetitionCounter;  //重复计数器(高级定时器专属)       100,则每次重装载不触发中断,重装载100次以后才触发中断,即100ms
} TIM_TimeBaseInitTypeDef; //时基初始化结构体

tim.c

#include "tim.h"void TIM_Config(void)
{TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStruct;RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4,ENABLE);TIM_TimeBaseInitStruct.TIM_Prescaler=71;TIM_TimeBaseInitStruct.TIM_Period=1000-1;      TIM_TimeBaseInit(TIM4,&TIM_TimeBaseInitStruct);TIM4_NVIC();TIM_ClearFlag(TIM4,TIM_FLAG_Update);TIM_ITConfig(TIM4,TIM_IT_Update,ENABLE);TIM_Cmd(TIM4,ENABLE);}
void TIM4_NVIC(void)
{NVIC_InitTypeDef NVIC_InitStruct;NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);NVIC_InitStruct.NVIC_IRQChannel= TIM4_IRQn;NVIC_InitStruct.NVIC_IRQChannelPreemptionPriority =   1;NVIC_InitStruct.NVIC_IRQChannelSubPriority=  1 ;NVIC_InitStruct.NVIC_IRQChannelCmd = ENABLE;NVIC_Init(&NVIC_InitStruct);
}

main.c

#include "stm32f10x.h"
#include "led.h"
#include "./TIM/tim.h"
uint16_t time=0;
int main()
{LED_GPIO_Config();TIM_Config();while(1){if(time==1000){LED_G(1);}else if(time==2000){LED_G(0);time=0;}}
}

中断函数:

void TIM4_IRQHandler(void)
{if(TIM_GetITStatus(TIM4,TIM_IT_Update)==SET){time++;TIM_ClearITPendingBit(TIM4,TIM_IT_Update);}
}

TIM基本定时器——定时相关推荐

  1. c语言定时器定时1ms程序,STM32 Cubemx 配置定时器定时1mS

    最近才发现原来我把定时器里的配置参数代表的意义给搞混了,这里记录一下,防止以后自己忘记. 以建立一个定时1mS定时器为例: 1.先打开定时器 2.配置好时钟 3.配置定时器设置 重点来了,以前在这里我 ...

  2. stm32初学之定时器TIM的基本定时功能以及介绍

    文章目录 前言 一.定时器基本介绍以及定时器原理图 1.定时器基本介绍 2.定时器原理图 3.定时器配置 二.定时器计算 前言 提示:以下是本篇文章正文内容,下面案例可供参考 一.定时器基本介绍以及定 ...

  3. STM32入门笔记04_TIM定时器+案例:TIM定时器定时中断、定时器外部时钟

    TIM定时器 TIM简介 TIM(Timer) 定时器 定时器可以对输入的时钟进行计数,并在计数值达到设定值时触发中断 16位计数器.预分频器.自动重装寄存器的时基单元,在72MHz(系统主频)计数时 ...

  4. 第31章 TIM—基本定时器—零死角玩转STM32-F429系列

    第31章     TIM-基本定时器 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.com/fire ...

  5. STM32CubeMX与HAL库学习--基本定时器定时中断

    STM32CubeMX与HAL库学习--基本定时器定时中断 背景 STM32CubeMX生成初始化代码 在MDK-ARM里编辑代码 其他 背景 本人小白,最近在学着使用STM32CubeMX与HAL库 ...

  6. stm32定时器定时中断

    主频72MHz:最大计时59.65s 基本定时器: 基准时钟 预分频器 计数器 计数器与自动重装载寄存器进行比较 相等时计时时间到 进行中断相应 主模式触发DAC 硬件自动化 通用定时器: 计数模式不 ...

  7. STM32 定时器定时计算

    STM32 定时器定时计算 STM32 定时器频率 例子 公式 reference STM32 定时器频率 定时时间 = 定时器频率 / 倍频 /装载周期 htim1.Init.Prescaler = ...

  8. php定时爬虫,thinkphp5使用workerman定时器定时爬取站点内容的代码

    本篇文章给大家分享的内容是关于thinkphp5使用workerman定时器定时爬取某站点新闻资讯等的内容,内容很详细,有需要的朋友可以参考一下,希望可以帮助到你们. 1.首先通过 composer ...

  9. ASP.NET通过Global.asax和Timer定时器定时运行后台代码

    ASP.NET通过Global.asax和Timer定时器定时运行后台代码 Global.asax文件 1.Application_Start方法添加     // 在应用程序启动时运行的代码     ...

最新文章

  1. 【CTF】实验吧 困在栅栏里的凯撒
  2. 农村程序员吐槽:虽然挣着2万高薪,但却舍不得吃舍不得穿
  3. OpenGL学习(4)——纹理(补)
  4. 二十、SPI设备驱动及应用(一)
  5. JAVA源码优化、分析工具
  6. boost::hana::zip_with用法的测试程序
  7. Effective Java(1)-创建和销毁对象
  8. 不相交集类及其应用生成迷宫
  9. [django]Django输出页面方式的补充
  10. nyoj 456 邮票分你一半【01背包】
  11. 软件构建--系统设计
  12. 6月第3周网络安全报告:境内感染网络病毒主机55.4万
  13. 智能电表无线(NB-IOT/LoRa)红外读表远程抄表器实施方案
  14. mt6573集成MCP nandflash的详细方法
  15. 共享单车原理大揭秘:小编亲自示范如何“撬锁”
  16. 金彩教育:选择关键词要参考哪些数据
  17. [论文阅读笔记26]MRC4NER:使用阅读理解方法来解决NER任务
  18. [置顶] android关机闹钟设计思路
  19. 计算机网络体系结构划分
  20. 【Python字符串】

热门文章

  1. 计算机应用Office2016,Office 2016
  2. 如何解决屏幕使用时间的密码的问题?
  3. 深圳有多强?2928家专精特新中小企业 和 2.1万家高新技术企业!
  4. 数独输出Java_java – 使用回溯的数独求解器
  5. 动态申请二维数组空间及释放
  6. linux uefi转mbr方法,如何将uefi改成mbr分区
  7. 解决Word2019使用卡顿问题
  8. 大数据、云计算、区块链、人工智能!你选择哪个?
  9. simulia助力,柔性屏时代即将到来
  10. Q1月活大涨70%,后浪会成B站的流量萌新吗?