0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

STM32_TIM定时- 中断

黄工的嵌入式技术圈 来源:黄工的嵌入式技术圈 2020-04-08 09:49 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

今天讲解STM32F103定时器定时-中断功能,在昨天定时器延时的软件工程上添加TIM3定时的功能,你们也可以试着将昨天的工程添加修改得到。

今天的软件工程下载地址(360云盘):

https://yunpan.cn/cPnJ9KYcXbPsP 访问密码 acd8

工程现象:间隔(定时器定时)500ms LED变化一次, 并且串口打印

STM32F103ZE有8个定时器(TIM1 – TIM8), 改工程以TIM3定时为例。

STM32F10x的资料可以在我360云盘下载:

https://yunpan.cn/crBUdUGdYKam2 访问密码 ca90

关于TIM延时,我把重要的几点在下面分别讲述,工程中没有在这里讲述的都是之前就有的,重点讲述的是主题相关的内容。若不明白,请关注微信公众号“EmbeddDeveloper”查阅或留言。

现将重点讲述关于TIM定时的几点内容。

一、定时器时钟

这里的“时钟配置”函数在bsp.c文件下面;

使能时钟:RCC_APB1Periph_TIM3。

二、定时器配置

函数在timer.c文件下面;

详见每一句后面都有注释。

三、定时函数

函数在timer.c文件下面;

主要是定时ON 和OFF函数,至于为什么是定时ms,这里请参考昨天的讲解。

大致意思:TIM每秒计数1M次(系统时钟72M, 72分频),计数满1000次一个周期,也就是1usX 1000 = 1ms

见timer.h里面的宏定义:TIM3_COUNTER_CLOCK、TIM3_PRESCALER_VALUE、TIM3_PERIOD_TIMING

由这几个宏定义决定延时时间。

四、NVIC配置

函数在bsp.c文件下面;

今天的软件工程使用了中断,因此添加NVIC配置.

五、TIM3中断函数

函数在stm32f10x_it.c文件下面;

主要是处理TIM3定时器中断。

六、主函数应用

函数在main.c文件下面;

(定时器)定时500ms跳变LED、打印(发送)字符串。

上面“gTIMTiming_Nms_FlagOver”标志在第五点。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • STM32
    +关注

    关注

    2305

    文章

    11121

    浏览量

    371170
  • Tim
    Tim
    +关注

    关注

    0

    文章

    84

    浏览量

    18892
  • STM32F103
    +关注

    关注

    34

    文章

    490

    浏览量

    67087
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    CW32定时器及中断介绍

    载计数器并由一个可编程预分频器驱动。BTIM 支持定时器模式、计数器模式、触发启动模式和门控模式 4 种工作模式,支持溢出事件触发中断请求和 DMA 请求。得益于对触发信号的精细处理设计,使得 BTIM
    发表于 12-01 07:08

    脉冲编码器TIM3中断不生效是怎么回事?

    环境 stdio rtt 4.1.1 mcu stm32F407ZET6 目的 使用TIM3定时器读取编码器圈数 ① 按照论坛配置方法配置了一遍TIM3 board.h添加了 #d
    发表于 09-22 06:23

    基于 AS32X601 微控制器的定时器模块(TIM)技术研究与应用实践

    摘要: 本文全面介绍了国科安芯推出的AS32X601系列微控制器的定时器模块(TIM),包括其系统架构、功能特性、应用场景以及工程实践要点。通过对芯片的详细分析,揭示了其高性能运行的基础。本文详细
    的头像 发表于 08-19 16:44 597次阅读

    为什么定时器会在stm32进行启动文件配置的时候进入中断了?

    为什么定时器会在stm32进行启动文件配置的时候进入中断了,场景是重新烧录代码之后就出现,如果烧录前擦除下flash就不会出现此情况,看寄存器在此阶段并未复位。 软件环境为
    发表于 08-12 06:00

    STM32F405RGT6 ADC2+TIM4触发+DMA(DMA2_Stream2_CH1)+DMA中断会死机,怎么解决?

    ADC1+TIM4触发+DMA(DMA2_Stream0_CH0)+DMA中断完全正常更改为ADC2+TIM4触发+DMA(DMA2_Stream2_CH1)+DMA中断会死机(取消
    发表于 08-04 07:16

    第二十二章 TIM——高级定时

    本章介绍了W55MH32的高级定时器(TIM1和TIM8),其含时基单元等,具备输入捕获、输出比较、PWM生成等功能,还支持互补输出、死区插入等,适用于工业电机控制,也提及相关配置结构体。
    的头像 发表于 06-20 13:58 1405次阅读
    第二十二章 <b class='flag-5'>TIM</b>——高级<b class='flag-5'>定时</b>器

    第二十一章 TIM——通用定时

    本篇文章介绍了W55MH32的通用定时器(TIM2~TIM5等),其由16位自动装载计数器和可编程预分频器构成,具备输入捕获、输出比较、PWM生成等功能,还介绍了时基单元、计数器模式等,并有代码解析与下载验证内容。
    的头像 发表于 06-20 13:57 1376次阅读
    第二十一章 <b class='flag-5'>TIM</b>——通用<b class='flag-5'>定时</b>器

    第二十章 TIM——基本定时

    本章介绍了W55H32基本定时TIM6、TIM7,16位向上计数,含时钟源、预分频器等,讲解定时计算及初始化结构体。
    的头像 发表于 06-20 13:51 901次阅读
    第二十章 <b class='flag-5'>TIM</b>——基本<b class='flag-5'>定时</b>器

    一天一个嵌入式面试知识(1:中断处理机制详解)

    中断向量表存储了各中断对应的处理函数地址,确保CPU能快速定位并调用ISR。 五、实战案例:STM32定时中断配置 // 初始化
    发表于 03-21 10:18

    TIM2输入捕获,DMA开启中断传输输入捕获数据,程序跑的过程中,DMA一直中断TIM6只触发一次中断,怎么解决?

    TIM2捕获输入的数据,并且通过DMA存储,在开启DMA中断同时,TIM6中断也开启(用于计时)。但是程序跑的过程中,DMA一直中断
    发表于 03-14 06:39

    STM32G474HRTIM使用HRTIM配置了主定时中断,为啥调试的跳转到硬件中断,进不去定时中断,为什么?

    各位大佬,我使用HRTIM配置了主定时中断,为啥调试的跳转到硬件中断,进不去定时中断 下面是我的初始化代码
    发表于 03-13 08:17

    STM32H723使用DMA方式实现定时器输入捕获只能执行一次吗?

    目的:我们希望在 STM32H723 平台上以 DMA 模式实现定时器输入捕获,而不中断当前问题:使用 Cube MX 配置相关参数,只使用 TIM4 的 CH2 作为输入采集直接模式
    发表于 03-12 08:21

    STM32CUBUMX定时器1中断回调函数就是进不去怎么解决?

    已经在CUBUMX里面配置好中断了,初始化的时候也打开 HAL_TIM_Base_Start(&htim1); /[i] 启动定时中断 /HAL_
    发表于 03-12 06:49

    stm32同一个定时器不同的通道,可以不同时的输出pwm波形吗?

    请问,stm32的同一个定时器,不同的通道,可以不同时的输出pwm波形吗?比如tim1的ch1输出,延时几毫秒后tim1的ch2输出。 现在是要输出两个相位不同的pwm波形,延时时间、
    发表于 03-07 08:20

    为什么Tim2自动装载定时的首次中断时间总是设定时间的2倍?

    为何Tim2自动装载定时的首次中断时间总是设定时间的2倍?而后续中断均正常。反复修改了Tim2-
    发表于 03-07 06:23