stm32定时器学习笔记2-定时器定时中断相关库函数的使用

打通stm32定时中断的流程

就定时中断的基本结构可知 使用定时器中断要打通三部分 :选择时基单元的时钟来源  配置时基单元 配置中断

相关库函数   

选择时基单元的时钟来源

void TIM_InternalClockConfig(TIM_TypeDef* TIMx);

配置时基单元时钟来源为内部时钟

void TIM_ITRxExternalClockConfig(TIM_TypeDef* TIMx, uint16_t TIM_InputTriggerSource);
void TIM_TIxExternalClockConfig(TIM_TypeDef* TIMx, uint16_t TIM_TIxExternalCLKSource,
                                uint16_t TIM_ICPolarity, uint16_t ICFilter);

 输入捕获,参数2为捕获的引脚,3为极性选择,4滤波

void TIM_ETRClockMode1Config(TIM_TypeDef* TIMx, uint16_t TIM_ExtTRGPrescaler, uint16_t TIM_ExtTRGPolarity,
                             uint16_t ExtTRGFilter);
void TIM_ETRClockMode2Config(TIM_TypeDef* TIMx, uint16_t TIM_ExtTRGPrescaler, 
                             uint16_t TIM_ExtTRGPolarity, uint16_t ExtTRGFilter);

 外部时钟模式一跟二  参数2可以对外部时钟进行一次分频

模式一是选择外部输入脚作为时钟源,模式二是选择外或内触发输入

滤波是判断一个周期内的信号稳定与否,稳定输入该周期的波,不稳定则输出上一稳定周期

void TIM_ETRConfig(TIM_TypeDef* TIMx, uint16_t TIM_ExtTRGPrescaler, uint16_t TIM_ExtTRGPolarity,
                   uint16_t ExtTRGFilter);

 单独配置etr引脚

时基单元的配置

void TIM_TimeBaseInit (TIM_TypeDef* TIMx, TIM_TimeBaseInitTypeDef* TIM_TimeBaseInitStruct);

参数1  选择配置的定时器

参数2  时基单元参数的结构体

初始化时基结构体后一些可单独修改值的函数

预分频
void TIM_PrescalerConfig(TIM_TypeDef* TIMx, uint16_t Prescaler, uint16_t TIM_PSCReloadMode);

1对预分频值进行配置    参数2对预分频值写入方式做选择,可以是缓冲写入,可以是直接写入

计数器
void TIM_ARRPreloadConfig(TIM_TypeDef* TIMx, FunctionalState NewState);

对计数器值写入是否缓冲进行选择

void TIM_SetCounter(TIM_TypeDef* TIMx, uint16_t Counter);

写入值到计时器中

void TIM_SetAutoreload(TIM_TypeDef* TIMx, uint16_t Autoreload);

写入一个自动重装值

查看时基相关值

计数器
uint16_t TIM_GetCounter(TIM_TypeDef* TIMx);

获取当前计数器的值

预分频
uint16_t TIM_GetPrescaler(TIM_TypeDef* TIMx);

此外查看中断位与其他外设相同

使能时基与使能中断
void TIM_Cmd(TIM_TypeDef* TIMx, FunctionalState NewState);

使能计数器,相当于基本结构中的运行控制

void TIM_ITConfig(TIM_TypeDef* TIMx, uint16_t TIM_IT, FunctionalState NewState);

中断使能,相当于图中中断输出控制

编程注意

1 基础跟通用定时器挂载在APB1上,高级定时器挂载在APB2上

2 初始化时基之后会立即产生一次更新中断(因为有的要更新之后才写入psc arr),因此当作为计时使用时,是从1开始计,若需要从0开始,初始化时基后需要编程清除一次更新状态。

-------------------------------------------------------------------------------------------------------------------------------

图片来自江科大

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值