STM32定时器中断
来源:互联网 发布:价格走势软件 编辑:程序博客网 时间:2024/06/08 17:36
通过定时器中断控制LED灯的亮灭。
说明:本人所用软件为IAR,所用的为STM32固件库3.5,定时器每1秒产生一次中断。
led.h文件(相关头文件)
#ifndef __LED_H#define __LED_H#include "stm32f10x_gpio.h"#include "stm32f10x.h"#include "stm32f10x_rcc.h"#include "stm32f10x_tim.h"#endif
led.c文件
#include "led.h"void TIM3_IRQHandler(void)//定时器中断服务函数{ TIM_ClearITPendingBit(TIM3, TIM_IT_Update); //清除溢出中断标志 if(GPIO_ReadOutputDataBit(GPIOA, GPIO_Pin_0))//读GPIO_Pin_0电平,如果为1,置为0;如果为0,置为1; GPIO_ResetBits(GPIOA,GPIO_Pin_0); else GPIO_SetBits(GPIOA,GPIO_Pin_0); }void TIM3_Config(void)//定时器中断配置{ TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; //自定义结构体 GPIO_InitTypeDef GPIO_InitStructure; //自定义结构体 NVIC_InitTypeDef NVIC_InitStructure; RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE);//打开相应时钟 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE); //打开时钟 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;//LED 选择引脚0 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //输出频率最大50MHz GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //带上拉电阻输出 GPIO_Init(GPIOA,&GPIO_InitStructure);//初始化GPIOA NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);//配置为1组 NVIC_InitStructure.NVIC_IRQChannel = TIM3_IRQn; //定时器3中断配置 NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1; //先占优先级1级 NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0; //从优先级1级 NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //IRQ通道被使能 NVIC_Init(&NVIC_InitStructure); //初始化 TIM_TimeBaseStructure.TIM_Period = 10000-1; //设置在下一个更新事件装入活动的自动重装载寄存器周期的值 TIM_TimeBaseStructure.TIM_Prescaler = 7200-1; //设置用来作为TIMx时钟频率除数的预分频值 10KHz 1秒产生10000个脉冲 TIM_TimeBaseStructure.TIM_ClockDivision = 0; //设置时钟分割:TDTS = Tck_tim TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; //TIM向上计数模式 TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure); //根据TIM_TimeBaseInitStruct中指定的参数初始化TIMx的时间基数单位 TIM_ITConfig(TIM3,TIM_IT_Update ,ENABLE);//TIM3中断使能 TIM_Cmd(TIM3,ENABLE); //开启定时器3 }
#include "led.h"void TIM3_Config(void);//函数声明int main(){ TIM3_Config();//函数调用 while(1) { ; }}
阅读全文
0 0
- STM32 定时器中断
- STM32定时器中断
- STM32的定时器中断
- stm32-定时器中断
- stm32定时器中断实验
- STM32 定时器中断函数
- stm32定时器中断
- STM32定时器中断
- stm32之定时器中断
- STM32学习-定时器中断实验
- STM32定时器中断实验-TIM3
- STM32学习之:定时器中断
- STM32外部中断及定时器编程示例
- STM32单片机学习(5) 定时器中断实验
- STM32学习笔记6-定时器中断
- STM32学习笔记6-定时器中断
- Stm32定时器中断使LED灯闪烁
- [转]STM32学习笔记6-定时器中断
- 判断mysql指定数据库指定表是否存在的SQL语句
- linux wc
- CSS vertical-align 垂直对齐 详析
- 冒泡排序
- robot framewok 2.8.5的Create Dictionary从Collections库移动到BuiltIn
- STM32定时器中断
- C++学习笔记--继承的赋值兼容和函数重写
- vs 2015 update 3各版本下载地址
- 学习分析TZFILE
- 给VMWare下的centos7 扩展磁盘空间
- ios CCRandomGenerateBytes 生成定长随机字符串
- error while loading shared libraries错误的原因及解決方法
- HTML5有哪些新特性
- 乘法口诀表