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

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

3天内不再提示

如何使用带定时器的中断

454398 来源:工程师吴畏 2019-09-04 17:17 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

步骤1:在STM32CubeMX中创建项目

如何使用带定时器的中断

打开STM32CubeMX。点击“新建项目”。从系列选择‘STMF1’,从‘线’选择STM32F103。从MCU列表中,选择“STM32F103RBTx”。单击“确定”。

[1]

现在,需要完成两件事。首先,在STM32板上显示的STM32微控制器上,单击“PA5”并选择“GPIO_Output”。其次,在Peripherals选项卡下的‘TIM1’选项卡下选择‘Internal Clock’作为‘Clock Source’,如图所示:

[2]

现在,切换到配置选项卡。在“控件”下,您将看到“TIM1”按钮。单击它,您将看到如下窗口:

[3]

现在,在此计数器设置下的“参数设置”选项卡(已选中)中选择‘预分频器(PSC) - 16位值)’。在此之前,您将看到一个下拉箭头(在下图中红色箭头指示的位置),点击它。确保选中“十进制”。并将其值从“0”更改为“64000”。

[4]

将计数器模式更改为“关闭”。再次选择Counter Period,单击前面的下拉箭头,确保选中‘Decimal’。现在,将其值更改为1.您的窗口必须如下所示:

[5]

单击“应用”,然后单击“确定”。

现在,在“系统”选项卡下单击“GPIO”按钮。选择“PA5”并在“用户标签”中输入“Ld2”。

现在,在“系统”选项卡下单击“NVIC”按钮。从中断表中选择“TIM1 break interrupt”,启用它并将Preemption Priority设置为“1”。对“TIM更新中断”执行相同操作。因此,现在您的窗口应如下所示:

[6]

现在,单击“生成代码”按钮。项目名称中的Fil,保存项目和“工具链/IDE”的位置选择“MDK-ARM V5”。然后单击“确定”。然后单击“打开项目”。

步骤2:使用Keil进行编程

一旦Project为在Keil中打开,打开位于‘Project/User’文件夹下的‘main.c’,位于‘Project:’下。向下滚动以找到While(1)。就在While(1)之前添加这行代码:

HAL_TIM_Base_Start_IT(&htim1); //start timer1 in interrupt mode.

你的Keil窗口将如下所示:

[7]

现在,在‘main.c’文件附近打开‘STM32Fxx_it.c’。向下滚动以找到‘TIM1_UP_IRQHandler’函数。

在编写以下代码行时:

static uint32_t counter = 0;

if (counter 》= 500)

{

HAL_GPIO_TogglePin(LD2_GPIO_Port, LD2_Pin);

counter = 0;

}

counter++;

因此您的窗口将如下所示:

[8]

单击“构建”按钮(或按“F7”)。连接STM32板并单击“加载”按钮(或按“F8”)

步骤3:可视化输出

现在,按‘你’STM32‘板上的黑色’休息按钮。

你看到LED在一段时间后开启和关闭。

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

    关注

    23

    文章

    3361

    浏览量

    121750
  • stm32cubemx
    +关注

    关注

    5

    文章

    287

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    CW32A030微控制定时器

    16bit 自动重装载计数 并由一个可编程预分频驱动。GTIM 支持定时器模式、计数模式、触发启动模式和门控模式4 种基本 工作模式,每组
    发表于 12-04 06:47

    CW32L0开发板学习记录四,高级定时器ATIM学习

    (ATIM): 高级定时器 (ATIM) 包含一个 16bit 自动重载计数,并由一个可编程的预分频驱动。ATIM 支持定时、计数、复位、门控、触发和编码
    发表于 12-01 07:35

    CW32定时器中断介绍

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

    单片机定时器中断

    和T1的工作方式 ②计算初值,并将初值写入TH0、TL0或TH1、TL1中。 ③中断方式时,则对IE赋值,开放中断。 ④使TR0或TR1置位,启动定时器/计数
    发表于 11-24 06:22

    PWM、定时器、SysTick 区别及应用场景

    。下面我们来梳理清楚。一、基本概念定时器(Timer)MCU内最基础的计数外设,通过计数时钟周期实现定时、计数功能。多数MCU内部有多个通用定时器,可配置为定时中断
    的头像 发表于 11-17 10:53 231次阅读
    PWM、<b class='flag-5'>定时器</b>、SysTick 区别及应用场景

    cs32a010定时器的问题

    按照例程写了定时器的初始化,还是无法进入中断 比较奇怪我使用定时器为什么要用输入捕获? 还有周期是否该设为x-1?
    发表于 11-06 10:49

    SysTick系统滴答定时器简介

    SysTick—系统定时器是属于CM33内核中的一个外设,内嵌在NVIC中。系统定时器是一个24bit的向下递减的计数,计数每计数一次的时间为 1/SYSCLK,一般我们设置系统时
    的头像 发表于 09-23 09:50 1335次阅读
    SysTick系统滴答<b class='flag-5'>定时器</b>简介

    ‌TPL5010-Q1 纳米功耗系统定时器看门狗功能)技术文档摘要

    TPL5010-Q1 Nano 定时器是一款低功耗、符合 AEC-Q100 标准的定时器,带有看门狗 该功能非常适合占空比或电池供电应用中的系统唤醒。在这样的系统中 微控制定时器可用
    的头像 发表于 09-13 10:01 1266次阅读
    ‌TPL5010-Q1 纳米功耗系统<b class='flag-5'>定时器</b>(<b class='flag-5'>带</b>看门狗功能)技术文档摘要

    大彩讲堂:VisualHMI-LUA教程-定时器的使用指南

    定时器的使用
    的头像 发表于 08-31 16:59 856次阅读
    大彩讲堂:VisualHMI-LUA教程-<b class='flag-5'>定时器</b>的使用指南

    stm32H743定时器溢出的原因?怎么解决?

    我利用定时器更新中断实现软件计时,定时时间是固定的按照{10ms, 20ms,650ms, 50ms,50ms}周期性进行的。由于下一次的计时时间是需要在定时器
    发表于 06-23 08:26

    第十二章 SysTick——系统定时器

    本章介绍了W55MH32的SysTick系统定时器,它是24位递减计数,含4个寄存,可配置定时中断,用于产生时基 等。
    的头像 发表于 05-22 17:16 831次阅读
    第十二章 SysTick——系统<b class='flag-5'>定时器</b>

    MCU定时器/计数

    RISC-V核低功耗MCU通过灵活的定时器架构、低功耗模式适配及硬件级中断优化,在工业控制、智能家居等场景中实现高精度计时与能耗控制的协同设计,满足复杂任务调度与实时响应的双重需求‌。 一、‌硬件
    的头像 发表于 04-27 13:54 592次阅读

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

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

    stm32f103定时器2配置中断,程序一直死循环,无法进入中断,怎么解决?

    目前定时器2配置中断,程序一直死循环,无法进入中断,有无大佬请教或者看一下个参考历程
    发表于 03-12 08:18

    TPS3431EVM使能的标准可编程看门狗定时器

    电子发烧友网站提供《TPS3431EVM使能的标准可编程看门狗定时器.pdf》资料免费下载
    发表于 12-24 15:48 0次下载
    TPS3431EVM<b class='flag-5'>带</b>使能的标准可编程看门狗<b class='flag-5'>定时器</b>