一、基本配置

首先来基本的配置

1.将debug  改为  模拟输出

2.在RCC中选择内部晶振(有需要也可以选外部晶振)

3.开始配置引脚

4.配置时钟树(省略)

这里我设置72HZ 

5.最后的收尾设置(前面一期有讲)

正式开始 定时器中断 的配置

以TIM2为例

1.先启动 时钟源

2.选择内部时钟源

3.配置PSC(预分频器)和ARR(自动重装值)

   还要用到之前配置时钟数里的CK_INT(即72MHZ)

假如我给他设置成这样:

计算定时器的溢出频率(时间)

频率的计算:频率=CK_INT/(PSC*ARR),在这里就是72,000,000/(7200*10000) = 1

                                                                   时间就是频率取倒数。就是1s

这里可以解释一下,

为了方便计算,前面的72M ==72,000,000

结果是正确的。

4.勾选NVIC使能。

最后进行后面的收尾工作就完成了基本配置。

二、在keil5中写代码

1.先写启动函数

 HAL_TIM_Base_Start_IT(&htim2);

2.然后重写回调函数实现具体的内容

    在 stm32f1xx_it.c中找到中断服务函数

跳转到定义

   在这个.c文件中找到回调函数

HAL_TIM_PeriodElapsedCallback(htim);

 跳转到定义

找到其虚函数,重新编写

   复制粘贴到main.c文件中

   按照这样的格式写

完成!

=------------------------------------------------------------------------------

其实整个“然后重写回调函数实现具体的内容”就是这个函数

void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim){}

背下来也行。

关于“中断服务函数”与“回调函数”的关系补充

是这样的,单片机每收到一次中断,就会进入一次中断服务函数,而在中断处理函数中,我们又调用了函数
void HAL_UART_IRQHandler(UART_HandleTypeDef *huart);
该函数会间接调用回调函数,来实施相应的功能。

也就是说, 中断处理函数间接调用 回调函数 ,实行内容。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐