STM32单片机学习笔记(9):定时器中断

发布者:brian808090最新更新时间:2023-10-12 来源: elecfans关键字:STM32  单片机  定时器中断 手机看文章 扫描二维码
随时随地手机看文章

项目简介

利用CubMX生成基于32单片机的HAl库工程,然后编写程序在proteus上仿真验证。本项目最适合没有开发板的同学学习,零成本利用仿真软件率先入门STM32单片机。本项目利用CubMX创建一个32工程,用以实现定时器中断控制LED灯的状态转换的功能,并在Proteus中进行仿真验证。


硬件模块

STM32F103R4

LED


软件工具

CubMX

Proteus

KEIL


电路连接图

图片

工作流程

首先,创建一个CubMX工程。这里选择的是STM32F103R4型号的单片机。下图是时钟树的设置,这个根据自己习惯设置就好,这里的时钟频率,也就是定时器时钟频率是8MHz.

图片

介绍定时器发生中断时间的计算方法:定时器时间=(Prescaler+1)X(Counter Period+1)/定时器时钟频率 单位:秒/s。

然后,假如我们需要LED灯的状态每隔3s改变一次,已知定时器的时钟频率是8MHz,于是我们设置Prescaler为8000-1,Counter Period设置为3000-1。并设置自动重装载,具体如下图。

图片

然后使能中断

图片

然后生成代码

图片

图片

在stm32f4xx__it.c文件中找到TIM2_IRQHandler函数,

图片

然后进入HAL_TIM_IRQHandler函数,在其中找到HAL_TIM_PeriodElapsedCallback函数,复制到main.c文件中重新编辑

图片

然后在main函数中添加HAL_TIM_Base_Start_IT(&htim2);函数即可。
接下来,创建一个Proteus工程。

图片

开始调试,刚开始灯是亮的。

图片

3秒之后,灯灭了

图片

调试成功,验证可用。


程序代码

int main(void)

{

  /* USER CODE BEGIN 1 */



  /* USER CODE END 1 */



  /* MCU Configuration--------------------------------------------------------*/



  /* Reset of all peripherals, Initializes the Flash interface and the Systick. */

  HAL_Init();



  /* USER CODE BEGIN Init */



  /* USER CODE END Init */



  /* Configure the system clock */

  SystemClock_Config();



  /* USER CODE BEGIN SysInit */



  /* USER CODE END SysInit */



  /* Initialize all configured peripherals */

  MX_GPIO_Init();

  MX_TIM2_Init();


  HAL_TIM_Base_Start_IT(&htim2);

  /* USER CODE BEGIN 2 */



  /* USER CODE END 2 */



  /* Infinite loop */

  /* USER CODE BEGIN WHILE */

  while (1)

  {

    /* USER CODE END WHILE */



    /* USER CODE BEGIN 3 */

  }

  /* USER CODE END 3 */

}


......



/* USER CODE BEGIN 4 */

void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)

{

  HAL_GPIO_TogglePin(LED_GPIO_Port,LED_Pin);

}



/* USER CODE END 4 */


关键字:STM32  单片机  定时器中断 引用地址:STM32单片机学习笔记(9):定时器中断

上一篇:stm32f103 usb驱动电脑无法识别的解决办法
下一篇:基于 STM32和机智云物联网平台的农作物需水量统计系统

推荐阅读最新更新时间:2024-11-08 13:12

51单片机串口通信中的检错方法
0 引言 对于基于flash控制器的8051的芯片结构,一般在进行数据传输时,都是先通过串口将数据传送到flash控制器的buffer中。由于buffer的大小为512 bytes,所以每次传输的最大数据量为512bytes。本文中所讨论的三种检错方法的传输数据量均为512 bytes。 1 检错方式 基于8051的串口数据通信系统的硬件开发平台框图如图1所示。利用该平台进行数据传输时,通常有三种数据检错方式。 1.1 奇偶校验 奇偶校验是检错中比较常见的一种方法。它利用数据中的1的个数作为检错的标志位,若1的个数为奇数个,则错误检测的标志位为1,若1的个数为偶数,则错误检测的标志位为0。在发送端和接收端同时检测
[单片机]
51<font color='red'>单片机</font>串口通信中的检错方法
自定义reg52.h头文件(单片机学习重难点核心知识点)
/*-------------------------------------------------------------------------- 自定义REG52头文件 @auth lei @date 2017-05 --------------------------------------------------------------------------*/ #ifndef __REG52_H__ #define __REG52_H__ /* 一个字节的寄存器 */ sfr P0 = 0x80;//双向IO,向外输出要接上拉电阻 sfr P1 = 0x90;//准双向IO,作为输入要先置1 sfr P
[单片机]
凌阳16位单片机之外部中断
实现功能:利用外部中断来控制8个发光二极管的点亮与熄灭,利用键盘产生外部中断触发信号。 实验现象:当按S20键时,D8~D11四个发光二极管点亮,当按S21键时,D4~D7四个发光二极管点亮。 #include SPCE061A.H unsigned int output=0; void IRQ3(void)__attribute__((ISR)); void IRQ3() { unsigned int delay; *P_IOA_Data = 0x00ff; if(*P_INT_Ctrl & C_IRQ3_EXT1) { *P_IOA_Data = 0x000f; de
[单片机]
CC430F5137单片机的动力电池管理系统设计
摘要:针对目前动力电池管理系统功耗大、使用不灵活等缺陷,设计一种基于单片机CC430F5137的动力电池管理系统。分析了动力电池管理系统的结构原理,给出了硬件设计方法和软件流程,并详细分析了电压/电流检测模块、剩余电量检测模块、温度检测模块和数据传输模块。实验结果验证了采用单片机CC430F15137设计动力电池管理系统的可行性,系统运行稳定可靠,有较好的应用前景。 关键词:动力电池管理系统;CC430F5137;SoC;RF无线通信 引言 随着新能源汽车的不断发展,大型工厂开始逐步使用动力电池驱动的运输车辆。电动汽车目前常用的电池有铅酸电池、锂电池、镍氢电池等。电池是一个集成高能量的物体,它的使用以及安全管理就显得尤为重要。
[工业控制]
CC430F5137<font color='red'>单片机</font>的动力电池管理系统设计
讲述如何实现单片机与触摸屏的通信
  随着触摸屏的应用和产量的增加,价格下降。因而有可能使用触摸屏作为单片机控制设备的键盘和显示装置,提高单片机控制设备的档次。触摸屏与PLC联合使用时,触摸屏的主要功能是:   ①显示PLC输入,输出端13或辅助继电器的开关状态。   ②用触摸按键强制PLC输入,输出端口或辅助继电器的开/关。   ③显示PLC中定时器、计数器和数据寄存器的内容。   ④用触摸屏键盘把设定数据送入PLC的数据寄存器中。   可规纳成触摸屏与PLC问对应地址的数据位、字的读和写。因此可以利用MOD—BUS通信协议来实现触摸屏与单片机的通信和控制,或触摸屏与多台单片机通信,构成一个集散控制系统。    1 触摸屏与单片机的硬件联接   采
[单片机]
讲述如何实现<font color='red'>单片机</font>与触摸屏的通信
C8051F与80C51系列单片机的不同初始化
摘要:C8051F系列单片机是Cygnal公司出品的高速单片机,它与80C51系列单片机指令集兼容,但比后者增加了许多资源,从而为嵌入式系统的开发提供了极大的方便。文中介绍了这两者在结构上的差异以及编程时应注意的问题,并给出了它们较完整的初始化程序。 关键词:特殊功能寄存器SDR;先权交叉开关译码器;交叉开关控制寄存器 1 引言 近30年来,世界各主要电子元器件生产厂商纷纷推出自己各具特色的单片机产品。而在百花齐放的单片机家族中,80C5l系列一直扮演着重要的角色。该单片机在教学、科研等领域已经成为入门单片机并成为单片机应用的首选,该产品以其易读性好、扩展能力强而著称,从而成为广大从事单片机开发者最熟悉、最具代表的机型。但人
[应用]
基于单片机的点阵式LED显示简单图形的原理图
在8*8点阵式LED上显示实心五角星、圆点、心形图,通过按键来选择要显示的图形。 其电路原理图如下图所示: 图 基于单片机的点阵式LED显示简单图形的原理图
[模拟电子]
基于<font color='red'>单片机</font>的点阵式LED显示简单图形的原理图
8051单片机指令和寻址方式
80C51指令系统专用于80C51系列单片机,具有255种操作码(00H-FFH)除去A5H。 1. 寻址方式 寻址方式就是指指令中给出寻找操作数或操作数所在地址的方法,执行任何指令都需要操作数。 1)立即寻址 MOV DPTR,#1234H; 立即寻址是指在指令中直接给出操作数,出现在指令中的操作数称为立即数,因此被称为立即寻址。 2)直接寻址 MOV A,3AH; 直接寻址是指在指令中直接给出操作数单元地址。功能是将片内RAM的3AH单元内的数据传送内累加器A。 直接寻址方式只能给出8位地址,因此这种寻址方式的寻址范围只限于片内RAM。具体:a.低128单元,在指令中直接以单元地址的形式给出;b.特殊功能寄存器,即可以以单元地
[单片机]
小广播
设计资源 培训 开发板 精华推荐

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

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

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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