25 STM32标准库函数 之 高级控制定时器(TIM1及TIM8)所有函数的介绍及使用

1 高级控制定时器(TIM1及TIM8)预览

函数名描述
TIM1_DeInit将外设 TIM1 寄存器重设为缺省值
TIM1_TIM1BaseInit根据 TIM1_TIM1BaseInitStruct 中指定的参数初始化 TIM1 的时间基数单位
TIM1_OC1Init根据 TIM1_OCInitStruct 中指定的参数初始化 TIM1 通道 1
TIM1_OC2Init根据 TIM1_OCInitStruct 中指定的参数初始化 TIM1 通道 2
TIM1_OC3Init根据 TIM1_OCInitStruct 中指定的参数初始化 TIM1 通道 3
TIM1_OC4Init根据 TIM1_OCInitStruct 中指定的参数初始化 TIM1 通道 4
TIM1_BDTRConfig设置刹车特性,死区时间,锁电平,OSSI,OSSR 状态和 AOE(自动输出使能)
TIM1_ICInit根据 TIM1_ICInitStruct 中指定的参数初始化外设 TIM1
TIM1_PWMIConfig根据 TIM1_ICInitStruct 中指定的参数设置外设 TIM1 工作在 PWM 输入模式
TIM1_TIM1BaseStructInit把 TIM1_TIM1BaseInitStruct 中的每一个参数按缺省值填入
TIM1_OCStructInit把 TIM1_OCInitStruct 中的每一个参数按缺省值填入
TIM1_ICStructInit把 TIM1_ICInitStruct 中的每一个参数按缺省值填入
TIM1_BDTRStructInit把 TIM1_BDTRInitStruct 中的每一个参数按缺省值填入
TIM1_Cmd使能或者失能 TIM1 外设
TIM1_CtrlPWMOutputs使能或者失能 TIM1 外设的主输出
TIM1_ITConfig使能或者失能指定的 TIM1 中断
TIM1_DMAConfig设置 TIM1 的 DMA 接口
TIM1_DMACmd使能或者失能指定的 TIM1 的 DMA 请求
TIM1_InternalClockConfig设置 DMA 内部时钟
TIM1_ETRClockMode1Config配置 TIM1 外部时钟模式 1
TIM1_ETRClockMode2Config配置 TIM1 外部时钟模式 2
TIM1_ETRConfig配置 TIM1 外部触发
TIM1_ITRxExternalClockConfig设置 TIM1 内部触发为外部时钟模式
TIM1_TIxExternalClockConfig设置 TIM1 触发为外部时钟
TIM1_SelectInputTrigger选择 TIM1 输入触发源
TIM1_UpdateDisableConfig使能或者失能 TIM1 更新事件
TIM1_UpdateRequestConfig设置 TIM1 更新请求源
TIM1_SelectHallSensor使能或者失能 TIM1 霍尔传感器接口
TIM1_SelectOnePulseMode设置 TIM1 单脉冲模式
TIM1_SelectOutputTrigger选择 TIM1 触发输出模式
TIM1_SelectSlaveMode选择 TIM1 从模式
TIM1_SelectMasterSlaveMode设置或者重置 TIM1 主/从模式
TIM1_EncoderInterfaceConfig设置 TIM1 编码界面
TIM1_PrescalerConfig设置 TIM1 预分频
TIM1_CounterModeConfig设置 TIM1 计数器模式
TIM1_ForcedOC1Config置 TIM1 输出 1 为活动或者非活动电平
TIM1_ForcedOC2Config置 TIM1 输出 2 为活动或者非活动电平
TIM1_ForcedOC3Config置 TIM1 输出 3 为活动或者非活动电平
TIM1_ForcedOC4Config置 TIM1 输出 4 为活动或者非活动电平
TIM1_ARRPreloadConfig使能或者失能 TIM1 在 ARR 上的预装载寄存器
TIM1_SelectCOM选择 TIM1 外设的通讯事件
TIM1_SelectCCDMA选择 TIM1 外设的捕获比较 DMA 源
TIM1_CCPreloadControl设置或者重置 TIM1 捕获比较控制位
TIM1_OC1PreloadConfig使能或者失能 TIM1 在 CCR1 上的预装载寄存器
TIM1_OC2PreloadConfig使能或者失能 TIM1 在 CCR2 上的预装载寄存器
TIM1_OC3PreloadConfig使能或者失能 TIM1 在 CCR3 上的预装载寄存器
TIM1_OC4PreloadConfig使能或者失能 TIM1 在 CCR4 上的预装载寄存器
TIM1_OC1FastConfig设置 TIM1 捕获比较 1 快速特征
TIM1_OC2FastConfig设置 TIM1 捕获比较 2 快速特征
TIM1_OC3FastConfig设置 TIM1 捕获比较 3 快速特征
TIM1_OC4FastConfig设置 TIM1 捕获比较 4 快速特征
TIM1_ClearOC1Ref在一个外部事件时清除或者保持 OCREF1 信号
TIM1_ClearOC2Ref在一个外部事件时清除或者保持 OCREF2 信号
TIM1_ClearOC3Ref在一个外部事件时清除或者保持 OCREF3 信号
TIM1_ClearOC4Ref在一个外部事件时清除或者保持 OCREF4 信号
TIM1_GenerateEvent设置 TIM1 事件由软件产生
TIM1_OC1PolarityConfig设置 TIM1 通道 1N 极性
TIM1_OC1NPolarityConfig设置 TIM1 通道 1N 极性
TIM1_OC2PolarityConfig设置 TIM1 通道 2 极性
TIM1_OC2NPolarityConfig设置 TIM1 通道 2N 极性
TIM1_OC3PolarityConfig设置 TIM1 通道 3 极性
TIM1_OC3NPolarityConfig设置 TIM1 通道 3N 极性
TIM1_OC4PolarityConfig设置 TIM1 通道 4 极性
TIM1_SetCounter设置 TIM1 计数器寄存器值
TIM1_CCxCmd使能或者失能 TIM1 捕获比较通道 x
TIM1_CCxNCmd使能或者失能 TIM1 捕获比较通道 xN
TIM1_SelectOCxM选择 TIM1 输出比较模式
TIM1_SetAutoreload设置 TIM1 自动重装载寄存器值
TIM1_SetCompare1设置 TIM1 捕获比较 1 寄存器值
TIM1_SetCompare2设置 TIM1 捕获比较 2 寄存器值
TIM1_SetCompare3设置 TIM1 捕获比较 3 寄存器值
TIM1_SetCompare4设置 TIM1 捕获比较 4 寄存器值
TIM1_SetIC1Prescaler设置 TIM1 输入捕获 1 预分频
TIM1_SetIC2Prescaler设置 TIM1 输入捕获 2 预分频
TIM1_SetIC3Prescaler设置 TIM1 输入捕获 3 预分频
TIM1_SetIC4Prescaler设置 TIM1 输入捕获 4 预分频
TIM1_SetClockDivision设置 TIM1 的时钟分割值
TIM1_GetCapture1获得 TIM1 输入捕获 1 的值
TIM1_GetCapture2获得 TIM1 输入捕获 2 的值
TIM1_GetCapture3获得 TIM1 输入捕获 3 的值
TIM1_GetCapture4获得 TIM1 输入捕获 4 的值
TIM1_GetCounter获得 TIM1 计数器的值
TIM1_GetPrescaler获得 TIM1 预分频值
TIM1_GetFlagStatus检查指定的 TIM1 标志位设置与否
TIM1_ClearFlag清除 TIM1 的待处理标志位
TIM1_GetITStatus检查指定的 TIM1 中断发生与否
TIM1_ClearITPendingBit清除 TIM1 的中断待处理位

**高级控制定时器(TIM1及TIM8) 都具备 通用定时器(TIM) 的功能,下面只介绍 高级控制定时器(TIM1及TIM8)特有的函数,其他函数参考 通用定时器(TIM) 。 **

1.1 TIM1_BDTRConfig

函数名TIM1_BDTRConfig
函数原形void TIM1_BDTRConfig(TIM1_BDTRInitTypeDef *TIM1_BDTRInitStruct)
功能描述设置刹车特性,死区时间,锁电平,OSSI,OSSR 状态和 AOE(自动输出使能)
输入参数TIM1_BDTRInitStruct:指向结构 TIM1_BDTRInitTypeDef 的指针,包含了 TIM1 的 BDTR 寄存器的配置信息
参阅 SectionTIM1_BDTRInitTypeDef 查阅更多该参数允许取值范围
输出参数
返回值
先决条件
被调用函数

TIM1_OSSRState 值

TIM1_OSSRState 值描述
TIM1_OSSRState_Enable使能 TIM1 OSSR 状态
TIM1_OSSRState_Disable失能 TIM1 OSSR 状态

TIM1_OSSIState 值

TIM1_OSSIState 值描述
TIM1_OSSIState_Enable使能 TIM1 OSSI 状态
TIM1_OSSIState_Disable失能 TIM1 OSSI 状态

TIM1_LOCKLevel 值

TIM1_LOCKLevel 值描述
TIM1_LOCKLevel_OFF不锁任何位
TIM1_LOCKLevel_1使用锁电平 1
TIM1_LOCKLevel_2使用锁电平 2
TIM1_LOCKLevel_3使用锁电平 3

TIM1_Break 值

TIM1_Break 值描述
TIM1_Break_Enable使能 TIM1 刹车输入
TIM1_Break_Disable失能 TIM1 刹车输入

TIM1_BreakPolarity 值

TIM1_BreakPolarity 值描述
TIM1_BreakPolarity_LowTIM1 刹车输入管脚极性低
TIM1_BreakPolarity_HighTIM1 刹车输入管脚极性高

TIM1_AutomaticOutput 值

TIM1_AutomaticOutput 值描述
TIM1_AutomaticOutput_Enable自动输出功能使能
TIM1_AutomaticOutput_Disable自动输出功能失能

例:
/* OSSR, OSSI, Automatic Output enable, Break, dead TIM1 and Lock
Level configuration*/
TIM1_BDTRInitTypeDef TIM1_BDTRInitStructure;
TIM1_BDTRInitStructure.TIM1_OSSRState = TIM1_OSSRState_Enable;
TIM1_BDTRInitStructure.TIM1_OSSIState = TIM1_OSSIState_Enable;
TIM1_BDTRInitStructure.TIM1_LOCKLevel = TIM1_LOCKLevel_1;
TIM1_BDTRInitStructure.TIM1_DeadTIM1 = 0x05;
TIM1_BDTRInitStructure.TIM1_Break = TIM1_Break_Enable;
TIM1_BDTRInitStructure.TIM1_BreakPolarity =
TIM1_BreakPolarity_High;
TIM1_BDTRInitStructure.TIM1_AutomaticOutput =
TIM1_AutomaticOutput_Enable;
TIM1_BDTRConfig(&TIM1_BDTRInitStructure);

1.2 TIM1_PWMICConfig

函数名TIM1_CtrlPWMOutputs
函数原形void TIM1_CtrlPWMOutputs(FunctionalState Newstate)
功能描述使能或者失能 TIM1 的主输出
输入参数NewState: 外设 TIM1 主输出的新状态。这个参数可以取:ENABLE 或者 DISABLE
输出参数
返回值
先决条件
被调用函数
TIM1_CtrlPWMOutputs(ENABLE);

该文档修改记录:

修改时间修改说明
2024年4月2日第一次发布,介绍了25 STM32标准库函数 之 高级控制定时器(TIM1及TIM8)所有函数的介绍及使用

总结

以上就是 25 STM32标准库函数 之 高级控制定时器(TIM1及TIM8)所有函数的介绍及使用的内容。
有不明白的地方欢迎留言;有建议欢迎留言,我后面编写文档好改进。
创作不容,如果文档对您有帮助,记得给个赞。

  • 9
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
好的,我了解你的问题了。首先,需要初始化TIM5定时器,并设置定时器的时钟源、预分频系数、自动重载值、计数模式、定时器中断等参数。然后,使用定时器中断处理函数控制多个报警源的闪烁,具体实现如下: ```c #include "stm32f4xx.h" #define LED_PIN GPIO_Pin_13 #define LED_PORT GPIOG void TIM5_IRQHandler(void) { if (TIM_GetITStatus(TIM5, TIM_IT_Update) != RESET) { static int count = 0; if (++count >= 1000) { // 1000次中断为1s count = 0; GPIO_ToggleBits(LED_PORT, LED_PIN); // 翻转LED灯状态 } TIM_ClearITPendingBit(TIM5, TIM_IT_Update); } } void TIM5_Configuration(void) { TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM5, ENABLE); TIM_TimeBaseStructure.TIM_Period = 999; // 自动重载值 TIM_TimeBaseStructure.TIM_Prescaler = 8399; // 预分频系数 TIM_TimeBaseStructure.TIM_ClockDivision = 0; TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; TIM_TimeBaseInit(TIM5, &TIM_TimeBaseStructure); TIM_ITConfig(TIM5, TIM_IT_Update, ENABLE); // 开启定时器中断 NVIC_InitTypeDef NVIC_InitStructure; NVIC_InitStructure.NVIC_IRQChannel = TIM5_IRQn; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0; NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0; NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStructure); TIM_Cmd(TIM5, ENABLE); // 启动定时器 } int main(void) { GPIO_InitTypeDef GPIO_InitStructure; RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOG, ENABLE); GPIO_InitStructure.GPIO_Pin = LED_PIN; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT; GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz; GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL; GPIO_Init(LED_PORT, &GPIO_InitStructure); TIM5_Configuration(); while (1) { // do something } } ``` 在上述代码中,我们使用TIM5定时器控制LED灯的闪烁,设置定时器中断的时间为1秒,当定时器中断触发时,LED灯状态会翻转。如果你需要控制多个报警源的闪烁,可以在定时器中断处理函数中添加相应的控制代码即可。同时,你也可以根据具体需求调整定时器的时钟源、预分频系数、自动重载值等参数。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

常驻客栈

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值