stm32 计时器计时10s
时间: 2024-01-08 14:02:54 浏览: 64
在STM32中,可以使用定时器来实现计时功能。下面是一个使用定时器计时10秒的示例代码:
```c
#include "stm32f4xx.h"
void TIM2_Init(void)
{
// 使能定时器时钟
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);
// 定时器配置
TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
TIM_TimeBaseStructure.TIM_Period = 10000 - 1; // 设置计数器自动重装值,定时器溢出时间为10ms
TIM_TimeBaseStructure.TIM_Prescaler = 8400 - 1; // 设置预分频值,定时器时钟为84MHz,分频后为10kHz
TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1; // 设置时钟分割
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; // 设置计数器模式为向上计数
TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure);
// 使能定时器更新中断
TIM_ITConfig(TIM2, TIM_IT_Update, ENABLE);
// 使能定时器
TIM_Cmd(TIM2, ENABLE);
}
int main(void)
{
// 初始化定时器
TIM2_Init();
// 等待定时器计时完成
while (TIM_GetCounter(TIM2) < 10000);
// 关闭定时器
TIM_Cmd(TIM2, DISABLE);
// 输出计时结果
printf("计时完成!\n");
while (1);
}
```
这段代码使用了STM32的定时器2(TIM2)来实现计时功能。首先,通过`TIM_TimeBaseInitTypeDef`结构体配置定时器的参数,包括计数器自动重装值、预分频值、时钟分割和计数器模式。然后,使能定时器更新中断,并启动定时器。在主函数中,通过等待定时器计数器达到10000的值来实现10秒的计时。计时完成后,关闭定时器并输出计时结果。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![-](https://img-home.csdnimg.cn/images/20210720083327.png)
![-](https://img-home.csdnimg.cn/images/20210720083327.png)
![-](https://img-home.csdnimg.cn/images/20210720083327.png)
![-](https://img-home.csdnimg.cn/images/20210720083327.png)
![-](https://img-home.csdnimg.cn/images/20210720083327.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)