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

    关注

    2270

    文章

    10900

    浏览量

    355928
  • Tim
    Tim
    +关注

    关注

    0

    文章

    81

    浏览量

    17895
  • STM32F103
    +关注

    关注

    33

    文章

    477

    浏览量

    63643
收藏 人收藏

    评论

    相关推荐

    stm32怎样触发软件中断

    了解STM32中断系统 STM32微控制器具有丰富的中断系统,包括NVIC(嵌套向量中断控制器)和SYSTICK
    的头像 发表于 09-02 09:32 870次阅读

    tim3定时问题,为什么第一次中断的时候不正确,第二次的定时就正确了?

    定时器3,定时150MS如下初始化: TIM3_PSCR= 0X05; TIM3_ARRH= 0X92; TIM3_ARRL= 0X7C;
    发表于 05-17 13:43

    STM32F103打开了定时器2开定时中断,关闭就报错 ,定时器如何关闭呢?

    最近用STM32F103打开了定时器2 开定时中断,开启PA11的中断,在PA11的中断里把
    发表于 05-14 06:52

    stm8s103用tim4定时中断定时,插入到别人的PWM输出程序中进不去中断怎么解决?

    tim4定时中断定时,写好后单独用可以进中断但是插入到别人的PWM输出程序中却进不去中断,初始化应该没问题,求解
    发表于 05-09 07:27

    IAR编译的Tim2定时器不进中断,什么问题?

    //定时时钟2初始化 TIM2_CR1_ARPE = 1;//自动预装载允许 TIM2_PSCR_PSC = 1;//预分频器为1 TIM2_ARRH = 0x0F;//在8MHz时
    发表于 05-07 07:53

    把MATLAB中的模型下载到STM32F407中跑,TIM1的中断是灰色的,无法选择是什么问题?

    用ST官网提供的stm32-mat_target插件,希望可以直接把MATLAB中的模型下载到STM32F407中跑,在试验例程中用定时TIM1控制LED时,
    发表于 04-28 07:19

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

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

    为什么STM8S003F3进不了TIM1中断

    ,TIM1_COUNTERMODE_UP,1000,0);//16分频,向上计数,每1ms定时中断一次, 重复计数器值为0 TIM1_ARRPreloadConfig(ENABLE
    发表于 04-12 08:20

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

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

    定时中断对PWM输出有影响是什么原因造成的?

    1,400); TIM_SetCompare3(TIM8,2); 这是我的主程序,一旦加入TIM3_Int_Init(39999,14399)程序语句即定时
    发表于 04-09 06:16

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

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

    stm32f030c8的tim6及tim15没有响应是为什么?

    stm32f030c8的芯片,tim6及tim15没有响应,其他的时钟中断都可以响应。开发环境是STM32CubeMX_V6.8.1+Kei
    发表于 03-18 07:24

    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中断怎么处理的

    STM32是一款非常强大的微控制器系列,具有丰富的外设和功能。中断STM32中非常重要的部分,能够帮助我们提高系统的响应速度和效率。本文将详细介绍STM32
    的头像 发表于 01-02 17:35 2584次阅读