stm32使用定时器1实现闪烁led

我的stm32学习总结性作业

有些库参考原子

定时器1头文件

#ifndef _TIM1_H_
#define _TIM1_H_
#include "sys.h"
void TIM1_Init(void);
	 
 
#endif
 

定时器c文件

#include "TIM1.h"

void TIM1_Init(void)
{
TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
	NVIC_InitTypeDef NVIC_InitStructure;
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1,ENABLE);//使用高级定时器注意他在桥2上
	
	
TIM_TimeBaseStructure.TIM_Period = (10000-1);//ARR
TIM_TimeBaseStructure.TIM_Prescaler = (7200-1);//PSC
TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1;
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
TIM_TimeBaseInit(TIM1, & TIM_TimeBaseStructure);

//使能定时器中断
	TIM_ITConfig(TIM1, TIM_IT_Update,ENABLE);
	
//配置定时器1的中断优先等级
	
	NVIC_InitStructure.NVIC_IRQChannel = TIM1_UP_IRQn;
	NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
	NVIC_InitStructure.NVIC_IRQChannelSubPriority &#
  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
STM32是一款广泛应用于嵌入式系统的微控制器,通过定时器可以方便地实现LED灯的闪烁功能。 首先,我们需要配置一个定时器来控制LED灯的闪烁间隔。定时器可以选择使用内部的系统时钟作为时基,也可以通过外部时钟源提供时基。在本例中,我们选择使用内部时钟作为时基。 接下来,我们需要配置GPIO引脚来控制LED灯。STM32有多个GPIO引脚可以用来控制LED灯的亮灭状态。我们将一个GPIO引脚配置为输出模式,并连接到LED灯。 然后,我们需要编写代码来配置定时器和GPIO引脚,并实现LED灯的闪烁。 首先,我们使用CubeMX来配置STM32的时钟源和GPIO引脚。我们选择一个合适的时钟源作为定时器的时基,同时将一个GPIO引脚配置为输出模式,并连接到LED灯。 然后,我们打开Keil或其他编程软件,编写C语言代码来实现LED灯的闪烁。在代码中,我们使用定时器的中断功能来控制LED灯的亮灭状态。 首先,我们初始化定时器并配置定时器的参数,如定时器的预分频值和计数器的重载值。然后,我们使能定时器的中断,并编写一个中断服务函数来处理定时器中断。 在中断服务函数中,我们使用一个计数变量来记录中断的次数。当计数变量达到我们需要的闪烁间隔时,我们改变LED灯的状态,即改变GPIO引脚的电平状态,使LED闪烁。 最后,我们在主函数中启动定时器,并进入一个无限循环来保持程序的运行。在无限循环中,我们不需要做任何操作,因为LED灯的闪烁将由定时器中断来实现。 通过上述步骤,我们成功实现STM32通过定时器来控制LED灯的闪烁功能。这样,每当定时器中断触发时,LED灯的状态就会改变,从而实现LED灯的闪烁效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值