情况如下:通过定时器中断配置,每500ms中断一次,然后中断服务函数中控制LED实现LED1状态取反(闪烁)[其中,我们可以在里面创新一下,我创新的是蜂鸣器200ms响一次,然后500ms,LED1取反]

一般步骤就是:

①:使能定时器时钟

RCC_APB1PeriphClockCmd();

②:初始化定时器,配置ARR,PSC

TIM_TimeBaseInit();

③:开启定时器中断,配置NVIC

void TIM_ITConfig();

NVIC_Init();

④:使能定时器

TIM_Cmd();

⑥:编写中断服务函数

TIMx_IRQHandler();

我们先写.h文件

#ifndef __TIMER_H
#define __TIMER_H
#include "sys.h"
void TIM3_Init_Init(u16 arr,u16 psc);
#endif

然后我们按着步骤一步步写.c文件

#include "timer.h"
#include "led.h"
void TIM3_Init_Init(u16 arr,u16 psc)
{TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStruct;NVIC_InitTypeDef NVIC_InitStruct;RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3,ENABLE);TIM_TimeBaseInitStruct.TIM_Period=arr;TIM_TimeBaseInitStruct.TIM_ClockDivision=TIM_CKD_DIV1;TIM_TimeBaseInitStruct.TIM_CounterMode=TIM_CounterMode_Up;TIM_TimeBaseInitStruct.TIM_Prescaler=psc;TIM_TimeBaseInit(TIM3,&TIM_TimeBaseInitStruct);TIM_ITConfig(TIM3,TIM_IT_Update,ENABLE);NVIC_InitStruct.NVIC_IRQChannel=TIM3_IRQn;NVIC_InitStruct.NVIC_IRQChannelCmd=ENABLE;NVIC_InitStruct.NVIC_IRQChannelPreemptionPriority=0;NVIC_InitStruct.NVIC_IRQChannelSubPriority=3;NVIC_Init(&NVIC_InitStruct);TIM_Cmd(TIM3,ENABLE);
}
void TIM3_IRQHandler()
{if(TIM_GetITStatus(TIM3,TIM_IT_Update)==SET){PBout(5)=!PBout(5);TIM_ClearITPendingBit(TIM3,TIM_IT_Update);}}

最后,我们写主函数

#include "beep.h"
#include "led.h"
#include "stm32f10x.h"
#include "delay.h"
#include "sys.h"
#include "exti.h"
#include "iwdg.h"
#include "timer.h"
int main(void)
{
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);delay_init();LED_Init();BEEP_Init();TIM3_Init_Init(4999,7199);while(1){PBout(8)=!PBout(8);delay_ms(200);}
}

最后,效果展示图,大家脑补一下蜂鸣器滴滴响,LED一直闪烁(这动态的我也不好拍)

STM32定时器中断实验相关推荐

  1. STM32——定时器中断实验

    一.内部时钟选择 (计数器时钟可以有多个时钟源提供:内部时钟.外部时钟模式1.外部时钟模式2.内部触发模式.本次以内部时钟为时钟源,进行学习) 1.选择内部时钟  2.设置预分频系数.自动重装载值  ...

  2. STM32定时器中断实验-学习笔记

    目录 目录 目录 通用定时器简介 寄存器 控制寄存器 (TIMx_CR1) DMA/中断使能寄存器(TIMx_DIER) 预分频寄存器(TIMx_PSC) TIMx_CNT 寄存器 自动重装载寄存器( ...

  3. STM32定时器中断

    目录 一.关于STM32定时器中断 1.定时器分类 2.通用定时器的功能特点 3.定时器中断的触发 4.定时时钟计算方法 二.CubeMX初始化配置 1.芯片选型(我们这里运用的STM32F103C8 ...

  4. 基于STM32F103ZET6库函数定时器中断实验

    基于STM32F103ZET6库函数定时器中断实验 STM32F1 通用定时器简介 定时器相关的库函数主要集中在固件库文件 stm32f10x_tim.h 和 stm32f10x_tim.c 文件中 ...

  5. STM32 定时器中断

    通用定时器工作过程: 时钟选择: 计数器时钟可以由下列时钟源提供: 内部时钟(CK_INT) 外部时钟模式1:外部输入脚(TIx) 外部时钟模式2:外部触发输入(ETR) 内部触发输入(ITRx):使 ...

  6. STM32CubeMX 实战教程:定时器中断实验(LL 库)

    1.资源的获取:关注博主并点赞对应博客,并在文章下留言邮箱索取: 2.资源的类型:获取资源仅限于免费公开文章或粉丝免费专享文章,不包括付费文章:   博主分享不易,请给三连哦(关注 + 点赞 + 收藏 ...

  7. 7. STM32——定时器中断(1秒闪烁灯)

    STM32--定时器中断(1秒闪烁灯) 基本框架 1. 配置定时器时钟 在 stm32f10x_rcc.h 头文件中查找相关函数函数 2. 配置定时器结构体 在 stm32f10x_tim.h 头文件 ...

  8. stm32定时器中断的配置步骤

    stm32定时器中断的配置步骤 1>TIM3 时钟使能 位于低速的APB1总线上(注意:高级定时器是在高速的APB2总线上): RCC_APB1PeriphClockCmd(RCC_APB1Pe ...

  9. 【CubeMX配置stm32定时器中断】

    CubeMX配置stm32定时器中断 一.使用CubeMX对STM32进行基础的配置 1.选择需要使用的定时器 选择TIM2和TIM3示例, 注意: TIM2和其它定时器选择时钟的方法不同,TIM3等 ...

最新文章

  1. python编程 从入门到实践豆瓣-三周刷完《Python编程从入门到实践》的感受
  2. java中关于IO流的知识总结(重点介绍文件流的使用)
  3. Spring Cache
  4. sqlserver2000 mdf 文件导入
  5. c# WebApi之接口返回类型详解
  6. 谷歌开源的 GAN 库--TFGAN
  7. 如何提升大规模Transformer的训练效果?Primer给出答案
  8. new 对象时的暗执行顺序
  9. 国外安全网站信息收集
  10. Alpha,Beta,RC,RTM,EVAL,CTP,OEM,RTL,VOL
  11. Windows如何重装系统
  12. 惠普服务器硬件检测软件吗,惠普 PROLIANT 服务器硬件检测工具使用方法
  13. 操作高通QXDM5,点击重置按钮出现报错
  14. JS中改变this指向的两种方法
  15. Zbrush中常用的8种笔刷,笔刷中的八大金刚你用过几个?
  16. redit高可用之集群
  17. VMware无法启动虚拟机里面没网络解决方法
  18. win10计算机中删除桌面,win10系统电脑桌面壁纸历史记录怎么删除
  19. coursera python web_一步步爬取Coursera课程资源
  20. lookupedit可编辑可选择

热门文章

  1. Mac 下常用的编程软件
  2. SNN系列|神经元模型篇(3)SRM
  3. 什么是RTK基站?它的工作原理是什么
  4. VMware vSphere ESXi 6.7/7.0 定制安装盘(驱动或者SLIC)
  5. 《算法分析与设计》第二周课堂笔记 孙晓 老湿
  6. ISO27002新版标准变化解读
  7. 仿肯德基宅急送App-Vue实战
  8. AAMA 2605铝型材和板材上的超高性能有机涂层的推荐规范、性能要求和测试方法
  9. 〖Python 数据库开发实战 - MySQL篇㉜〗- 事务的隔离级别
  10. STM32CubeIDE修改深色主题