一知半解学CubeMX——TIM:定时中断实现LED闪烁

发布者:RainbowJoy最新更新时间:2018-06-18 来源: eefocus关键字:CubeM  TIM  定时中断  LED闪烁 手机看文章 扫描二维码
随时随地手机看文章

一知半解学习环境:

    1、CubeMX 4.23.0

    2、uVision 5.14.2

    3、MCU 启明 STM32F407 开发板(高配版) V3.1

一知半解学习目标:

    1、掌握CubeMX下RCC以及SYS的相关配置;

    2、掌握CubeMX下GPIO的相关配置;

    3、掌握CubeMX下定时器常规中断的配置;

一知半解实现过程:

    1、配置系统调试接口及时基时钟源;


    2、配置外部高速时钟源(HSE);


    3、配置定时器参数(TIM1);


    4、根据原理图配置相应GPIO引脚并修改宏定义名称;




   5、配置时钟树,主频168M;


    6、配置管脚默认输出状态及速率;


    7、配置定时器预分频及装载值,开启定时器中断;


        由于此处选择的是定时器1(TIM1),该定时器挂载在APB2总线上,因此TIM1时钟为168M。为了使LED间隔0.5S翻转,需要配置TIM1的中断时间为0.5S,为了方便计算预分频值定为 16800-1,装载值为5000-1; ((168M/16800)/5000) = 2Hz,即周期为0.5S。


    8、生成工程,并添加相关程序;

首先,main.c程序中添加(放置于定时器配置之后)开启 TIM1计时中断;

  /* USER CODE BEGIN 2 */

    /*使能定时器1中断*/

    HAL_TIM_Base_Start_IT(&htim1);

  /* USER CODE END 2 */

其次,在 tim.c文件中添加定时器中断完成回调函数;

/* USER CODE BEGIN 1 */

void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim){

    

    if (htim->Instance == TIM1){

        

        /* Toggle LED */

        HAL_GPIO_TogglePin(LED0_GPIO_Port,LED0_Pin);

        HAL_GPIO_TogglePin(LED1_GPIO_Port,LED1_Pin);

        HAL_GPIO_TogglePin(LED2_GPIO_Port,LED2_Pin);

    }

}

/* USER CODE END 1 */

一知半解套路回顾:

    1、掌握CubeMX配置的常规套路,如SYS、RCC以及时钟树的配置等;

    2、掌握TIM中断开启函数的使用;

    3、掌握定时器中断回调函数的使用;


关键字:CubeM  TIM  定时中断  LED闪烁 引用地址:一知半解学CubeMX——TIM:定时中断实现LED闪烁

上一篇:Stm32定时器中断使LED灯闪烁
下一篇:STM32 HAL库学习系列番外第2篇---LL库定时器配置

推荐阅读最新更新时间:2024-03-16 16:05

单片机中关于定时中断1和3
一、定时器的结构以及工作原理 MCS-51单片机内部有两个16位可编程定时器/计数器,即定时器T0和定时器T1。他们既可以用作定时器的方式,又可以用作计数器的方式,共4种不同的工作方式 寄存器TMOD用于控制T0和T1的工作方式,可通过编程设置TMOD来决定工作方式。 CATE C/T M1 M0 GATE C/T M1 M0 M1M0为工作方式控制位,我们常用工作方式1,若要设置T0以 方式1 工作,可使用TMOD=0X01;来设置。 定时/计数器的核心是16位加法计数器,T0的加法计数器由两个8位寄存器TH0,TL0构成,TH0表示加法计数器的高八位。TL0表示加法计数
[单片机]
51单片机中断系统详解(定时器、计数器)
51单片机中断级别 中断源 默认中断级别 序号(C语言用) INT0---外部中断0 最高 0 T0---定时器/计数器0中断 第2 1 INT1---外部中断1 第3 2 T1----定时器/计数器1中断 第4 3 TX/RX---串行口中断 第5 4 T2---定时器/计数器2中断 最低 5 中断允许寄存器IE 位序号 DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 符号位 EA ------- ET2 ES ET1 EX1 ET0 EX0 EA---全局中允许位。 EA=1,打开全局中断控制,在此条件下,由
[单片机]
89C51单片机定时/计数器中断
一、汇编语言 编写51单片机定时/计数中断响应程序 ORG 0000H LJMP MAIN ORG 000Bh LJMP ZD0 ORG 0040H MAIN: MOV TH0,#0d8h MOV TL0,#0e8h MOV A,#0FEh SETB EA SETB ET0 SETB TR0 SJMP $ ZD0: MOV P2,A MOV TH0,#0d8h MOV TL0,#0f0h inc r3 CJNE r3,#99D,ddd mov r3,#00h inc r4 CJNE r4,
[单片机]
多任务系统看门狗的实现
看门狗分硬件看门狗和软件看门狗。硬件看门狗是利用一个定时器电路,其定时输出连接到电路的复位端,程序在一定时间范围内对定时器清零(俗称“喂狗”),因此程序正常工作时,定时器总不能溢出,也就不能产生复位信号。如果程序出现故障,不在定时周期内复位看门狗,就使得看门狗定时器溢出产生复位信号并重启系统。软件看门狗原理上一样,只是将硬件电路上的定时器用处理器的内部定时器代替,这样可以简化硬件电路设计,但在可靠性方面不如硬件定时器,比如系统内部定时器自身发生故障就无法检测到。当然也有通过双定时器相互监视,这不仅加大系统开销,也不能解决全部问题,比如中断系统故障导致定时器中断失效。 看门狗本身不是用来解决系统出现的问题,在调试过程中发现的故障应该
[应用]
STM32F1x系列——定时中断
一 通用定时器的工作过程如下图: 二 计数器模式: (1)向上计数模式:计数器从0计数到自动加载值,然后重新从0开始计数并且产生一个计数器溢出事件 (2)向下计数模式:计数器从自动装入的值开始向下计数到0,然后从自动装入的值重新开始,并产生一个计数器向下溢出的事件 (3)中央对齐模式(向上/向下计数):计数器从0开始计数到自动装入的值-1,产生一个计数器溢出事件,然后向下计数到1,并且产生一个计数器溢出事件,然后再从0开始计数 通用定时器常用寄存器和库函数: (1)定时器使能函数:void TIM_Cmd(TIM_TypeDef* TIMx, FunctionalState NewState) (2)定
[单片机]
STM32F1x系列——<font color='red'>定时</font>器<font color='red'>中断</font>
STM8 定时中断程序
系统功能 使用STM8定时器做1S定时,并使用LED作出简单指示! 硬件设计 本设计基于内部RC振荡器2M时钟作STM8定时器TIM4的时钟源进行1S定时! LED控制电路原理图 软件设计 /********************************************************************* 目标系统: 基于STM8单片机 应用软件: Cosmic CxSTM8 *********************************************************************/ /* ----------------------------
[单片机]
STM8 <font color='red'>定时</font>器<font color='red'>中断</font>程序
stm8s定时tim4使用方法解析
  stm8s定时器TIm4概述   该定时器由的8可位自动重载的向上计数器所组成,它可以用来作为时基发生器,具有溢出中断功能。   TIM6同时钟信号控制器用于定时器同步和级联。   STM8通用定时器TIM4的主要功能   TIM4功能包括:   1、8位向上计数的自动重载计数器;   2、3位可编程的预分配器(可在运行中修改),提供1,2,4,8,16,32,64和128这8种分频比例。   3、中断产生   –在计数器更新时:计数器溢出   STM8通用定时器TIM4功能概述      (TIM4框图 )   中断   通用定时器包括2个中断源:   更新中断(溢出,计数器初始化);   触发信号输入(
[单片机]
stm8s<font color='red'>定时</font>器<font color='red'>tim</font>4使用方法解析
STM32利用定时器1控制LED闪烁
配置LED灯 //PC13 void LED_Init(void) { GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_Init(GPIOC, &GPIO_InitStructure); }
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved