STM32定时器中断实验
情况如下:通过定时器中断配置,每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定时器中断实验相关推荐
- STM32——定时器中断实验
一.内部时钟选择 (计数器时钟可以有多个时钟源提供:内部时钟.外部时钟模式1.外部时钟模式2.内部触发模式.本次以内部时钟为时钟源,进行学习) 1.选择内部时钟 2.设置预分频系数.自动重装载值 ...
- STM32定时器中断实验-学习笔记
目录 目录 目录 通用定时器简介 寄存器 控制寄存器 (TIMx_CR1) DMA/中断使能寄存器(TIMx_DIER) 预分频寄存器(TIMx_PSC) TIMx_CNT 寄存器 自动重装载寄存器( ...
- STM32定时器中断
目录 一.关于STM32定时器中断 1.定时器分类 2.通用定时器的功能特点 3.定时器中断的触发 4.定时时钟计算方法 二.CubeMX初始化配置 1.芯片选型(我们这里运用的STM32F103C8 ...
- 基于STM32F103ZET6库函数定时器中断实验
基于STM32F103ZET6库函数定时器中断实验 STM32F1 通用定时器简介 定时器相关的库函数主要集中在固件库文件 stm32f10x_tim.h 和 stm32f10x_tim.c 文件中 ...
- STM32 定时器中断
通用定时器工作过程: 时钟选择: 计数器时钟可以由下列时钟源提供: 内部时钟(CK_INT) 外部时钟模式1:外部输入脚(TIx) 外部时钟模式2:外部触发输入(ETR) 内部触发输入(ITRx):使 ...
- STM32CubeMX 实战教程:定时器中断实验(LL 库)
1.资源的获取:关注博主并点赞对应博客,并在文章下留言邮箱索取: 2.资源的类型:获取资源仅限于免费公开文章或粉丝免费专享文章,不包括付费文章: 博主分享不易,请给三连哦(关注 + 点赞 + 收藏 ...
- 7. STM32——定时器中断(1秒闪烁灯)
STM32--定时器中断(1秒闪烁灯) 基本框架 1. 配置定时器时钟 在 stm32f10x_rcc.h 头文件中查找相关函数函数 2. 配置定时器结构体 在 stm32f10x_tim.h 头文件 ...
- stm32定时器中断的配置步骤
stm32定时器中断的配置步骤 1>TIM3 时钟使能 位于低速的APB1总线上(注意:高级定时器是在高速的APB2总线上): RCC_APB1PeriphClockCmd(RCC_APB1Pe ...
- 【CubeMX配置stm32定时器中断】
CubeMX配置stm32定时器中断 一.使用CubeMX对STM32进行基础的配置 1.选择需要使用的定时器 选择TIM2和TIM3示例, 注意: TIM2和其它定时器选择时钟的方法不同,TIM3等 ...
最新文章
- python编程 从入门到实践豆瓣-三周刷完《Python编程从入门到实践》的感受
- java中关于IO流的知识总结(重点介绍文件流的使用)
- Spring Cache
- sqlserver2000 mdf 文件导入
- c# WebApi之接口返回类型详解
- 谷歌开源的 GAN 库--TFGAN
- 如何提升大规模Transformer的训练效果?Primer给出答案
- new 对象时的暗执行顺序
- 国外安全网站信息收集
- Alpha,Beta,RC,RTM,EVAL,CTP,OEM,RTL,VOL
- Windows如何重装系统
- 惠普服务器硬件检测软件吗,惠普 PROLIANT 服务器硬件检测工具使用方法
- 操作高通QXDM5,点击重置按钮出现报错
- JS中改变this指向的两种方法
- Zbrush中常用的8种笔刷,笔刷中的八大金刚你用过几个?
- redit高可用之集群
- VMware无法启动虚拟机里面没网络解决方法
- win10计算机中删除桌面,win10系统电脑桌面壁纸历史记录怎么删除
- coursera python web_一步步爬取Coursera课程资源
- lookupedit可编辑可选择