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
    +关注

    关注

    2239

    文章

    10671

    浏览量

    348732
  • Tim
    Tim
    +关注

    关注

    0

    文章

    76

    浏览量

    17710
  • STM32F103
    +关注

    关注

    33

    文章

    474

    浏览量

    62571
收藏 人收藏

    评论

    相关推荐

    使用STM8L151F3P6编程,调用TIM4定时器不能进入中断怎么解决?

    使用TIM2和TIM3都很好用,但不够用。使用TIM4定时器,用中断服务程序来编写一个软件计数器。不论如何初始化编程,
    发表于 04-19 06:00

    STM32F407IG中断标志位为0,却能进入中断,为什么?

    用的是STM32F407IG,同时开启TIM1, TIM3, 外部计数,开启更新中断 每个定时中断
    发表于 04-09 08:10

    stm32f10x高级定时TIM1和通用定时TIM2~TIM4如何同步作用?

    TIM2~TIM4我都用了,现在还需要用一个计时器,但是只要我在定时器初始化加上TIM1的初始化,还没写中断函数,其他程序就什么都运行不了了
    发表于 03-19 06:26

    STM32F051 TIM2定时器如何设置才能使定时器进入中断后CNT计数器继续向上累加计数?

    现在使用STM32F051,TIM2定时器,请问如何设置才能使定时器进入中断后CNT计数器继续向上累加计数
    发表于 03-15 07:57

    使用STM32F407定时中断周期不准怎么解决?

    外置晶振是8M,使用最高的系统时钟168M,然后使用定时TIM8作为定时器更新中断,程序的寄存器PLL_N = 336;PLL_P = 2;PLL_M = 8;要配置一个16KHz,
    发表于 03-15 07:28

    STM32如何使用定时器实现微秒(us)级延时?

    如何使用定时器实现微秒级延时的步骤: 步骤 1:配置定时器 首先,需要选择一个适合的定时器。大多数STM32微控制器都配备了多个定时器,因此
    的头像 发表于 11-06 11:05 3024次阅读

    STM32速成笔记(6)—定时

    关于什么是定时器,简单来讲,就是是用来定时的。STM32F103ZET6有两个基本定时TIM6和TIM
    的头像 发表于 10-24 09:41 1678次阅读
    <b class='flag-5'>STM32</b>速成笔记(6)—<b class='flag-5'>定时</b>器

    定时TIM5进不了中断如何解决?

    !!! //定时器5初始化 //定时0.5s每0.5s进一次定时中断 void TIM5_Enable(u16 arr) { TIM
    发表于 09-25 07:37

    STM32F051 TIM2定时器如何设置才能使定时器进入中断后CNT计数器继续向上累加计数?

    现在使用STM32F051,TIM2定时器,请问如何设置才能使定时器进入中断后CNT计数器继续向上累加计数
    发表于 08-04 08:38

    定时中断是什么意思,定时中断的工作原理

    定时中断是由单片机中的定时器溢出而申请的中断。51单片机中有两个定时器T0和T1。STM32
    的头像 发表于 07-23 09:45 3674次阅读

    STM32 TIM—基本定时

    STM32F4xx系列控制器有共有14个TIM定时器。其中2个高级控制定时TIM1和TIM8、
    的头像 发表于 07-22 17:05 3328次阅读
    <b class='flag-5'>STM32</b> <b class='flag-5'>TIM</b>—基本<b class='flag-5'>定时</b>器

    STM32F103单片机学习笔记(4):定时中断

    定时器500毫秒LED灯闪烁1次为例,用TIM3定时器。
    发表于 07-21 15:45 661次阅读
    <b class='flag-5'>STM32</b>F103单片机学习笔记(4):<b class='flag-5'>定时</b>器<b class='flag-5'>中断</b>

    STM32定时器(二)定时中断

    常规定时器:基本定时TIM6&TIM7)、通用定时器(TIM2~
    的头像 发表于 07-21 14:54 1845次阅读
    <b class='flag-5'>STM32</b><b class='flag-5'>定时</b>器(二)<b class='flag-5'>定时</b>器<b class='flag-5'>中断</b>

    STM32F407 基本定时器使用

    介绍STM32F407基本定时器的配置方法,分别介绍轮询方式、中断方式使用定时器完成定时
    的头像 发表于 07-06 14:32 2114次阅读
    <b class='flag-5'>STM32</b>F407 基本<b class='flag-5'>定时</b>器使用

    STM32定时器中TIM_RepetitionCounter作用详解

    STM32中 有一个这个TIM_RepetitionCounter参数。如下,定时了0.001s,然后在中断中计数1000次,点亮熄灭LED,正常情况来说,led会亮1s,然后灭1s
    的头像 发表于 05-05 11:32 1537次阅读
    <b class='flag-5'>STM32</b><b class='flag-5'>定时</b>器中<b class='flag-5'>TIM</b>_RepetitionCounter作用详解