(蓝桥杯)STM32G431RBT6(定时器2)

一、CubeMx的配置

(1) 基础配置

        首先看上一篇文章把LED灯、基础的SYS、RCC、时钟树给配置好

(2) TIM配置
        基础的理论知识

        定时器的输入时钟频率是170MHz

         要打开中断
 (3)注意

        可以在配置的时候把其它LED都设置为OutPut模式,然后全都置高电平,这样的现象就能很清楚的看见指定LED灯的现象

 

二、代码 

(1)让定时器开始工作

        此时虽然生成了TIM2的初始函数,但是TIM2并未开始工作。所以我们要打开TIM2的时基功能,因为我们开启了中断,所以我们要用HAL_TIM_Base_Start_IT()来让定时器开始工作

        这样就打开了带有中断的时基功能,此时TIM2就可以开始工作了

HAL_TIM_Base_Start_IT(&htim2);
(2)定时器的中断函数

         这个就是我们TIM2的中断函数,在stm32g4xx_it.c里面

(3)被中断函数调用的回调函数 

 (4)前面加__weak就是弱函数定义

         这个弱函数的存在是因为,前面已经调用了中断回调函数,所以必须要写一个这个函数要执行那些任务。但是因为还没有决定好这个函数到底要执行什么任务,所以就先写一个弱函数占位置,后续有需要它执行的任务再写上去。其实这个弱函数里面相当于什么都没写

        所以后面用户可以自己写一个不带weak的函数,这样函数的优先级就比程序里面原带的高,我们就可以在这个函数里面写我们想让它执行的任务

(5)main函数的主体部分

        这个static应该是用于纯局部变量 

        其实这个函数的执行逻辑不太懂

void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{
	static uint16_t cnt=0;//局部定义
        cnt++;  
	if(cnt>=1000)
	{
		cnt=0;
		HAL_GPIO_TogglePin(LED2_GPIO_Port ,LED2_Pin );
	}		
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值