STM32标准库通用定时器计数
1.STM32标准库时钟树设置2.通过keil内置标准库创建stm32工程3.STM32硬件IIC使用4.STM32FATFS文件系统移植5.STM32SPIFLASH读写6.STM32标准库内部Flash读写7.STM32F103xC,xD,xE引脚定义8.STM32标准库通用定时器PWM生成
9.STM32标准库通用定时器计数
10.STM32标准库基本定时器11.STM32标准库RTC时钟12.STM32ADC单通道转换13.STM32标准库串口DMA空闲中断接收14.STM32OLED使用15.STM32标准库低功耗16.STM32标准库通用定时器输出比较17.STM32标准库通用定时器输入捕获18.STM32硬件IIC使用STM32标准库通用定时器计数
1. 定时器初始化
void TIM2_Init()
{
TIM_TimeBaseInitTypeDef TIM2_Initstructure; //定义结构体
NVIC_InitTypeDef NVIC_InitStructure; //定义结构体
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2,ENABLE); //使能定时器2时钟
TIM2_Initstructure.TIM_Period = 1000; //设置计数器自动重装值
TIM2_Initstructure.TIM_Prescaler = 72 - 1; //设置预分频值
TIM2_Initstructure.TIM_ClockDivision = TIM_CKD_DIV1; //设置时钟分割
TIM2_Initstructure.TIM_CounterMode = TIM_CounterMode_Up; //设置计数器模式
TIM_TimeBaseInit(TIM2,&TIM2_Initstructure); //初始化定时器2
TIM_ITConfig(TIM2,TIM_IT_Update,ENABLE); //使能定时器2更新中断
NVIC_InitStructure.NVIC_IRQChannel = TIM2_IRQn; //定时器2中断通道
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1; //设置中断优先级
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1; //设置中断子优先级
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //使能中断通道
NVIC_Init(&NVIC_InitStructure); //初始化NVIC
TIM_Cmd(TIM2,ENABLE); //使能定时器2
}
其中TIM_TimeBaseInitTypeDef结构体配置比起基本定时器多了2个选项。基本定时器只需要配置TIM_Period和TIM_Prescaler的值便可以使用。
-
TIM_ClockDivision:设置定时器时钟分割.
- TIM_CKD_DIV1:定时器时钟 = 输入频率。
- TIM_CKD_DIV2:定时器时钟 = 输入频率/2。
- TIM_CKD_DIV4:定时器时钟 = 输入频率/4。
-
TIM_CounterMode:设置计数器模式。
- TIM_CounterMode_Up:向上计数。
- TIM_CounterMode_Down:向下计数。
- TIM_CounterMode_CenterAligned1:中心对齐向下计数。
- TIM_CounterMode_CenterAligned2:中心对齐向上计数。
- TIM_CounterMode_CenterAligned3:中心对齐双向计数。
2.定时器中断服务函数
void TIM2_IRQHandler() //定时器2中断服务函数
{
if(TIM_GetITStatus(TIM2,TIM_IT_Update) != RESET) //定时器2中断发生
{
TIM_ClearITPendingBit(TIM2,TIM_IT_Update); //清除中断标志位
led_turn(); //调用led翻转函数
}
}
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek “源神”启动!「GitHub 热点速览」
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
· 2 本地部署DeepSeek模型构建本地知识库+联网搜索详细步骤