描述 #
该文件定义了CH32V00x系列微控制器定时器(TIM)固件库的所有常量、枚举、结构体及函数原型,用于配置和控制TIM1与TIM2定时器外设。支持定时器基本计数、PWM输出、输入捕获、编码器接口、外部时钟同步、死区控制、互补输出、DMA传输及中断管理等高级功能。所有配置均通过结构体初始化和寄存器位操作实现,适用于电机控制、电源管理、精密测频与信号生成等应用场景。TIM1为高级定时器,支持互补输出与死区时间;TIM2为通用定时器,功能受限但资源更紧凑。
常量 #
TIM_Output_Compare_and_PWM_modes
#
定时器输出比较与PWM模式配置
这些模式决定了通道输出信号的行为,适用于生成精确脉宽、对称PWM或事件触发信号。PWM模式在计数器匹配时翻转输出,适合驱动电机或LED调光;定时模式用于生成事件而不改变输出电平,常用于触发DMA或中断。
| 名称 | 值 | 简述 |
|---|---|---|
TIM_OCMode_Timing |
0x0000 |
定时模式:输出保持不变,仅用于触发事件 |
TIM_OCMode_Active |
0x0010 |
主动模式:计数器匹配时输出为高电平 |
TIM_OCMode_Inactive |
0x0020 |
被动模式:计数器匹配时输出为低电平 |
TIM_OCMode_Toggle |
0x0030 |
翻转模式:计数器匹配时输出电平翻转 |
TIM_OCMode_PWM1 |
0x0060 |
PWM模式1:向上计数时匹配则输出低,否则高 |
TIM_OCMode_PWM2 |
0x0070 |
PWM模式2:向上计数时匹配则输出高,否则低 |
以上所有值都强制转换为
uint16_t
TIM_One_Pulse_Mode
#
单脉冲模式配置
用于生成单次脉冲序列,适用于需要精确控制脉冲宽度和间隔的场合,如触发ADC采样或驱动继电器。单次模式在计数完成后自动停止,重复模式则循环运行。
| 名称 | 值 | 简述 |
|---|---|---|
TIM_OPMode_Single |
0x0008 |
单次模式:计数器达到自动重载值后停止 |
TIM_OPMode_Repetitive |
0x0000 |
重复模式:计数器循环运行,持续产生脉冲 |
以上所有值都强制转换为
uint16_t
TIM_Channel
#
定时器通道选择
用于指定操作的通道(1~4),不同通道可独立配置输出模式、捕获极性或DMA源。TIM1支持全部4通道,TIM2仅支持前2通道。
| 名称 | 值 | 简述 |
|---|---|---|
TIM_Channel_1 |
0x0000 |
选择通道1 |
TIM_Channel_2 |
0x0004 |
选择通道2 |
TIM_Channel_3 |
0x0008 |
选择通道3 |
TIM_Channel_4 |
0x000C |
选择通道4 |
以上所有值都强制转换为
uint16_t
TIM_Clock_Division_CKD
#
时钟分频系数
用于设置定时器内部时钟(TIMxCLK)与计数器时钟(CK_CNT)的分频比,影响计数精度和响应速度。分频后时钟用于死区生成、滤波和同步逻辑。
| 名称 | 值 | 简述 |
|---|---|---|
TIM_CKD_DIV1 |
0x0000 |
不分频:CK_CNT = TIMxCLK |
TIM_CKD_DIV2 |
0x0100 |
分频2:CK_CNT = TIMxCLK/2 |
TIM_CKD_DIV4 |
0x0200 |
分频4:CK_CNT = TIMxCLK/4 |
以上所有值都强制转换为
uint16_t
TIM_Counter_Mode
#
计数器工作模式
定义定时器如何递增或递减计数,决定PWM波形的对称性与频率特性。中心对齐模式可降低电磁干扰,适用于电机驱动。
| 名称 | 值 | 简述 |
|---|---|---|
TIM_CounterMode_Up |
0x0000 |
向上计数:从0计数至自动重载值后重置 |
TIM_CounterMode_Down |
0x0010 |
向下计数:从自动重载值递减至0后重置 |
TIM_CounterMode_CenterAligned1 |
0x0020 |
中心对齐模式1:先向上计数,再向下计数,每周期触发两次更新 |
TIM_CounterMode_CenterAligned2 |
0x0040 |
中心对齐模式2:先向下计数,再向上计数,每周期触发两次更新 |
TIM_CounterMode_CenterAligned3 |
0x0060 |
中心对齐模式3:每计数周期触发两次更新,方向交替 |
以上所有值都强制转换为
uint16_t
TIM_Output_Compare_Polarity
#
输出比较极性
控制输出通道(OCx)的逻辑电平极性,用于匹配外部电路的驱动需求(如N沟道MOSFET需低有效)。
| 名称 | 值 | 简述 |
|---|---|---|
TIM_OCPolarity_High |
0x0000 |
高有效:匹配时输出高电平(根据模式) |
TIM_OCPolarity_Low |
0x0002 |
低有效:匹配时输出低电平(根据模式) |
以上所有值都强制转换为
uint16_t
TIM_Output_Compare_N_Polarity
#
互补输出极性(仅TIM1)
控制互补通道(OCxN)的极性,与主通道配合实现推挽输出。在H桥驱动中,主通道与互补通道需反相以避免直通。
| 名称 | 值 | 简述 |
|---|---|---|
TIM_OCNPolarity_High |
0x0000 |
高有效:互补输出匹配时为高电平 |
TIM_OCNPolarity_Low |
0x0008 |
低有效:互补输出匹配时为低电平 |
以上所有值都强制转换为
uint16_t
TIM_Output_Compare_state
#
输出比较使能状态
启用或禁用主输出通道(OCx),用于动态控制PWM输出的启停,无需重新配置寄存器。
| 名称 | 值 | 简述 |
|---|---|---|
TIM_OutputState_Disable |
0x0000 |
禁用输出通道 |
TIM_OutputState_Enable |
0x0001 |
启用输出通道 |
以上所有值都强制转换为
uint16_t
TIM_Output_Compare_N_state
#
互补输出使能状态(仅TIM1)
启用或禁用互补输出通道(OCxN),通常与主通道同步控制,用于实现安全关断或死区管理。
| 名称 | 值 | 简述 |
|---|---|---|
TIM_OutputNState_Disable |
0x0000 |
禁用互补输出通道 |
TIM_OutputNState_Enable |
0x0004 |
启用互补输出通道 |
以上所有值都强制转换为
uint16_t
TIM_Capture_Compare_state
#
捕获/比较通道使能状态
控制输入捕获或输出比较通道的使能,用于动态启用/禁用通道功能,如在测量完成后关闭捕获。
| 名称 | 值 | 简述 |
|---|---|---|
TIM_CCx_Enable |
0x0001 |
启用捕获/比较通道 |
TIM_CCx_Disable |
0x0000 |
禁用捕获/比较通道 |
以上所有值都强制转换为
uint16_t
TIM_Capture_Compare_N_state
#
互补捕获/比较通道使能状态(仅TIM1)
控制互补通道的使能,用于同步管理主/互补通道的输入捕获功能。
| 名称 | 值 | 简述 |
|---|---|---|
TIM_CCxN_Enable |
0x0004 |
启用互补捕获/比较通道 |
TIM_CCxN_Disable |
0x0000 |
禁用互补捕获/比较通道 |
以上所有值都强制转换为
uint16_t
Break_Input_enable_disable
#
刹车输入使能
启用外部刹车信号(BKIN),用于紧急停机。当刹车信号有效时,立即关闭所有输出通道(含互补),并可触发中断。
| 名称 | 值 | 简述 |
|---|---|---|
TIM_Break_Enable |
0x1000 |
启用刹车输入功能 |
TIM_Break_Disable |
0x0000 |
禁用刹车输入功能 |
以上所有值都强制转换为
uint16_t
Break_Polarity
#
刹车输入极性
定义刹车信号的触发条件,通常连接外部故障检测电路(如过流、过温传感器)。
| 名称 | 值 | 简述 |
|---|---|---|
TIM_BreakPolarity_Low |
0x0000 |
低电平有效:刹车信号为低时触发 |
TIM_BreakPolarity_High |
0x2000 |
高电平有效:刹车信号为高时触发 |
以上所有值都强制转换为
uint16_t
TIM_AOE_Bit_Set_Reset
#
自动输出使能(仅TIM1)
启用后,当定时器使能(CEN=1)时,自动激活主输出使能(MOE),无需手动设置BDTR寄存器的MOE位,简化启动流程。
| 名称 | 值 | 简述 |
|---|---|---|
TIM_AutomaticOutput_Enable |
0x4000 |
启用自动输出使能 |
TIM_AutomaticOutput_Disable |
0x0000 |
禁用自动输出使能 |
以上所有值都强制转换为
uint16_t
Lock_level
#
锁定级别
用于防止意外修改关键配置(如死区、刹车、互补输出),共4级,级别越高锁定越强,仅可通过复位清除。
| 名称 | 值 | 简述 |
|---|---|---|
TIM_LOCKLevel_OFF |
0x0000 |
无锁定:可自由修改所有参数 |
TIM_LOCKLevel_1 |
0x0100 |
锁定级别1:锁定OCx、OCxN、CCx、CCxN配置 |
TIM_LOCKLevel_2 |
0x0200 |
锁定级别2:锁定死区、刹车、AOE、OSSI、OSSR |
TIM_LOCKLevel_3 |
0x0300 |
锁定级别3:锁定所有配置,仅复位可解除 |
以上所有值都强制转换为
uint16_t
OSSI_Off_State_Selection_for_Idle_mode_state
#
空闲状态关断选择(仅TIM1)
定义在空闲状态(如刹车或停止)时,主/互补输出的电平状态。用于防止电机在停机时产生意外电流。
| 名称 | 值 | 简述 |
|---|---|---|
TIM_OSSIState_Enable |
0x0400 |
启用空闲关断:输出强制为低电平 |
TIM_OSSIState_Disable |
0x0000 |
禁用空闲关断:输出保持最后状态 |
以上所有值都强制转换为
uint16_t
OSSR_Off_State_Selection_for_Run_mode_state
#
运行状态关断选择(仅TIM1)
定义在运行状态下,若发生刹车或故障时,输出的关断行为。与OSSI配合实现安全关断策略。
| 名称 | 值 | 简述 |
|---|---|---|
TIM_OSSRState_Enable |
0x0800 |
启用运行关断:故障时输出强制为低 |
TIM_OSSRState_Disable |
0x0000 |
禁用运行关断:故障时输出保持原状态 |
以上所有值都强制转换为
uint16_t
TIM_Output_Compare_Idle_State
#
输出比较空闲状态(仅TIM1)
定义主通道在空闲状态(如单脉冲结束或刹车)时的输出电平。
| 名称 | 值 | 简述 |
|---|---|---|
TIM_OCIdleState_Set |
0x0100 |
空闲时输出高电平 |
TIM_OCIdleState_Reset |
0x0000 |
空闲时输出低电平 |
以上所有值都强制转换为
uint16_t
TIM_Output_Compare_N_Idle_State
#
互补输出比较空闲状态(仅TIM1)
定义互补通道在空闲状态时的输出电平,通常与主通道反相以确保安全。
| 名称 | 值 | 简述 |
|---|---|---|
TIM_OCNIdleState_Set |
0x0200 |
空闲时互补输出高电平 |
TIM_OCNIdleState_Reset |
0x0000 |
空闲时互补输出低电平 |
以上所有值都强制转换为
uint16_t
TIM_Input_Capture_Polarity
#
输入捕获极性
定义输入捕获通道(TIx)的触发边沿,支持上升沿、下降沿或双边沿检测,用于精确测量脉冲宽度或频率。
| 名称 | 值 | 简述 |
|---|---|---|
TIM_ICPolarity_Rising |
0x0000 |
上升沿触发捕获 |
TIM_ICPolarity_Falling |
0x0002 |
下降沿触发捕获 |
TIM_ICPolarity_BothEdge |
0x000A |
双边沿触发捕获(每边沿均记录) |
以上所有值都强制转换为
uint16_t
TIM_Input_Capture_Selection
#
输入捕获映射选择
定义输入引脚(TI1TI4)与内部捕获单元(IC1IC4)的映射关系,支持直接、交叉或外部触发源连接。
| 名称 | 值 | 简述 |
|---|---|---|
TIM_ICSelection_DirectTI |
0x0001 |
TIx直接映射到ICx(如TI1→IC1) |
TIM_ICSelection_IndirectTI |
0x0002 |
TIx交叉映射到ICx(如TI1→IC2) |
TIM_ICSelection_TRC |
0x0003 |
TIx映射到内部触发TRC(用于从模式控制) |
以上所有值都强制转换为
uint16_t
TIM_Input_Capture_Prescaler
#
输入捕获预分频
降低捕获频率,避免高速信号导致的溢出,适用于测量低频信号或减少中断负载。
| 名称 | 值 | 简述 |
|---|---|---|
TIM_ICPSC_DIV1 |
0x0000 |
每边沿捕获一次 |
TIM_ICPSC_DIV2 |
0x0004 |
每2个边沿捕获一次 |
TIM_ICPSC_DIV4 |
0x0008 |
每4个边沿捕获一次 |
TIM_ICPSC_DIV8 |
0x000C |
每8个边沿捕获一次 |
以上所有值都强制转换为
uint16_t
TIM_interrupt_sources
#
中断源标识
用于使能或查询定时器的中断请求,支持更新、捕获、比较、触发、刹车等事件中断。
| 名称 | 值 | 简述 |
|---|---|---|
TIM_IT_Update |
0x0001 |
更新中断(计数器溢出/下溢) |
TIM_IT_CC1 |
0x0002 |
通道1捕获/比较中断 |
TIM_IT_CC2 |
0x0004 |
通道2捕获/比较中断 |
TIM_IT_CC3 |
0x0008 |
通道3捕获/比较中断 |
TIM_IT_CC4 |
0x0010 |
通道4捕获/比较中断 |
TIM_IT_COM |
0x0020 |
换向中断(仅TIM1) |
TIM_IT_Trigger |
0x0040 |
触发中断(ETR或内部触发) |
TIM_IT_Break |
0x0080 |
刹车中断(仅TIM1) |
以上所有值都强制转换为
uint16_t
TIM_DMA_Base_address
#
DMA基地址选择
指定DMA传输的目标寄存器地址,用于批量传输定时器配置或状态,减少CPU负载。
| 名称 | 值 | 简述 |
|---|---|---|
TIM_DMABase_CR1 |
0x0000 |
控制寄存器1(CTLR1) |
TIM_DMABase_CR2 |
0x0001 |
控制寄存器2(CTLR2) |
TIM_DMABase_SMCR |
0x0002 |
从模式控制寄存器(SMCFGR) |
TIM_DMABase_DIER |
0x0003 |
DMA/中断使能寄存器(DMAINTENR) |
TIM_DMABase_SR |
0x0004 |
状态寄存器(INTFR) |
TIM_DMABase_EGR |
0x0005 |
事件生成寄存器(SWEVGR) |
TIM_DMABase_CCMR1 |
0x0006 |
捕获/比较模式寄存器1(CHCTLR1) |
TIM_DMABase_CCMR2 |
0x0007 |
捕获/比较模式寄存器2(CHCTLR2) |
TIM_DMABase_CCER |
0x0008 |
捕获/比较使能寄存器(CCER) |
TIM_DMABase_CNT |
0x0009 |
计数器寄存器(CNT) |
TIM_DMABase_PSC |
0x000A |
预分频器寄存器(PSC) |
TIM_DMABase_ARR |
0x000B |
自动重载寄存器(ATRLR) |
TIM_DMABase_RCR |
0x000C |
重复计数器寄存器(RPTCR) |
TIM_DMABase_CCR1 |
0x000D |
捕获/比较寄存器1(CH1CVR) |
TIM_DMABase_CCR2 |
0x000E |
捕获/比较寄存器2(CH2CVR) |
TIM_DMABase_CCR3 |
0x000F |
捕获/比较寄存器3(CH3CVR) |
TIM_DMABase_CCR4 |
0x0010 |
捕获/比较寄存器4(CH4CVR) |
TIM_DMABase_BDTR |
0x0011 |
刹车与死区寄存器(BDTR) |
TIM_DMABase_DCR |
0x0012 |
DMA控制寄存器(DMACFGR) |
以上所有值都强制转换为
uint16_t
TIM_DMA_Burst_Length
#
DMA突发传输长度
定义单次DMA传输的数据宽度(以寄存器为单位),支持1~18次连续传输,适用于批量配置多个寄存器。
| 名称 | 值 | 简述 |
|---|---|---|
TIM_DMABurstLength_1Transfer |
0x0000 |
1次传输 |
TIM_DMABurstLength_2Transfers |
0x0100 |
2次传输 |
TIM_DMABurstLength_3Transfers |
0x0200 |
3次传输 |
TIM_DMABurstLength_4Transfers |
0x0300 |
4次传输 |
TIM_DMABurstLength_5Transfers |
0x0400 |
5次传输 |
TIM_DMABurstLength_6Transfers |
0x0500 |
6次传输 |
TIM_DMABurstLength_7Transfers |
0x0600 |
7次传输 |
TIM_DMABurstLength_8Transfers |
0x0700 |
8次传输 |
TIM_DMABurstLength_9Transfers |
0x0800 |
9次传输 |
TIM_DMABurstLength_10Transfers |
0x0900 |
10次传输 |
TIM_DMABurstLength_11Transfers |
0x0A00 |
11次传输 |
TIM_DMABurstLength_12Transfers |
0x0B00 |
12次传输 |
TIM_DMABurstLength_13Transfers |
0x0C00 |
13次传输 |
TIM_DMABurstLength_14Transfers |
0x0D00 |
14次传输 |
TIM_DMABurstLength_15Transfers |
0x0E00 |
15次传输 |
TIM_DMABurstLength_16Transfers |
0x0F00 |
16次传输 |
TIM_DMABurstLength_17Transfers |
0x1000 |
17次传输 |
TIM_DMABurstLength_18Transfers |
0x1100 |
18次传输 |
以上所有值都强制转换为
uint16_t
TIM_DMA_sources
#
DMA请求源
指定触发DMA传输的事件源,通常与中断源对应,用于在事件发生时自动传输数据。
| 名称 | 值 | 简述 |
|---|---|---|
TIM_DMA_Update |
0x0100 |
更新事件触发DMA |
TIM_DMA_CC1 |
0x0200 |
通道1捕获/比较事件触发DMA |
TIM_DMA_CC2 |
0x0400 |
通道2捕获/比较事件触发DMA |
TIM_DMA_CC3 |
0x0800 |
通道3捕获/比较事件触发DMA |
TIM_DMA_CC4 |
0x1000 |
通道4捕获/比较事件触发DMA |
TIM_DMA_COM |
0x2000 |
换向事件触发DMA(仅TIM1) |
TIM_DMA_Trigger |
0x4000 |
触发事件触发DMA |
以上所有值都强制转换为
uint16_t
TIM_External_Trigger_Prescaler
#
外部触发预分频
对ETR(外部触发输入)信号进行分频,降低触发频率,适用于慢速外部信号同步。
| 名称 | 值 | 简述 |
|---|---|---|
TIM_ExtTRGPSC_OFF |
0x0000 |
无分频 |
TIM_ExtTRGPSC_DIV2 |
0x1000 |
分频2 |
TIM_ExtTRGPSC_DIV4 |
0x2000 |
分频4 |
TIM_ExtTRGPSC_DIV8 |
0x3000 |
分频8 |
以上所有值都强制转换为
uint16_t
TIM_Internal_Trigger_Selection
#
内部触发源选择
选择定时器的从模式触发源,用于同步多个定时器或实现复杂时序控制。
| 名称 | 值 | 简述 |
|---|---|---|
TIM_TS_ITR0 |
0x0000 |
内部触发0(ITR0) |
TIM_TS_ITR1 |
0x0010 |
内部触发1(ITR1) |
TIM_TS_ITR2 |
0x0020 |
内部触发2(ITR2) |
TIM_TS_ITR3 |
0x0030 |
内部触发3(ITR3) |
TIM_TS_TI1F_ED |
0x0040 |
TI1边沿检测器 |
TIM_TS_TI1FP1 |
0x0050 |
滤波后的TI1输入 |
TIM_TS_TI2FP2 |
0x0060 |
滤波后的TI2输入 |
TIM_TS_ETRF |
0x0070 |
外部触发输入(ETR) |
以上所有值都强制转换为
uint16_t
TIM_TIx_External_Clock_Source
#
TIx外部时钟源选择
定义TI1或TI2作为外部时钟输入时的信号源,用于实现编码器接口或外部频率测量。
| 名称 | 值 | 简述 |
|---|---|---|
TIM_TIxExternalCLK1Source_TI1 |
0x0050 |
使用TI1作为外部时钟 |
TIM_TIxExternalCLK1Source_TI2 |
0x0060 |
使用TI2作为外部时钟 |
TIM_TIxExternalCLK1Source_TI1ED |
0x0040 |
使用TI1边沿检测器作为外部时钟 |
以上所有值都强制转换为
uint16_t
TIM_External_Trigger_Polarity
#
外部触发极性
定义ETR(外部触发)信号的触发边沿,用于同步外部事件。
| 名称 | 值 | 简述 |
|---|---|---|
TIM_ExtTRGPolarity_Inverted |
0x8000 |
反相:下降沿触发 |
TIM_ExtTRGPolarity_NonInverted |
0x0000 |
非反相:上升沿触发 |
以上所有值都强制转换为
uint16_t
TIM_Prescaler_Reload_Mode
#
预分频器重载模式
控制预分频器更新时机,影响计数精度和实时性。
| 名称 | 值 | 简述 |
|---|---|---|
TIM_PSCReloadMode_Update |
0x0000 |
在更新事件时重载(同步) |
TIM_PSCReloadMode_Immediate |
0x0001 |
立即重载(异步) |
以上所有值都强制转换为
uint16_t
TIM_Forced_Action
#
强制输出动作
强制输出通道为高或低电平,用于调试或紧急控制,绕过正常PWM逻辑。
| 名称 | 值 | 简述 |
|---|---|---|
TIM_ForcedAction_Active |
0x0050 |
强制输出为高电平 |
TIM_ForcedAction_InActive |
0x0040 |
强制输出为低电平 |
以上所有值都强制转换为
uint16_t
TIM_Encoder_Mode
#
编码器接口模式
配置定时器作为编码器接口,支持单相、双相计数,用于位置反馈。
| 名称 | 值 | 简述 |
|---|---|---|
TIM_EncoderMode_TI1 |
0x0001 |
仅TI1边沿计数,TI2电平决定方向 |
TIM_EncoderMode_TI2 |
0x0002 |
仅TI2边沿计数,TI1电平决定方向 |
TIM_EncoderMode_TI12 |
0x0003 |
TI1和TI2边沿均计数,四倍分辨率 |
以上所有值都强制转换为
uint16_t
TIM_Event_Source
#
事件源标识
用于软件生成事件(TIM_GenerateEvent),触发更新、捕获、换向等动作。
| 名称 | 值 | 简述 |
|---|---|---|
TIM_EventSource_Update |
0x0001 |
更新事件 |
TIM_EventSource_CC1 |
0x0002 |
通道1捕获/比较事件 |
TIM_EventSource_CC2 |
0x0004 |
通道2捕获/比较事件 |
TIM_EventSource_CC3 |
0x0008 |
通道3捕获/比较事件 |
TIM_EventSource_CC4 |
0x0010 |
通道4捕获/比较事件 |
TIM_EventSource_COM |
0x0020 |
换向事件(仅TIM1) |
TIM_EventSource_Trigger |
0x0040 |
触发事件 |
TIM_EventSource_Break |
0x0080 |
刹车事件(仅TIM1) |
以上所有值都强制转换为
uint16_t
TIM_Update_Source
#
更新源选择
定义更新事件的触发条件,影响中断和DMA的触发时机。
| 名称 | 值 | 简述 |
|---|---|---|
TIM_UpdateSource_Global |
0x0000 |
任何更新事件(包括UG位或从模式触发) |
TIM_UpdateSource_Regular |
0x0001 |
仅计数器溢出/下溢触发更新 |
以上所有值都强制转换为
uint16_t
TIM_Output_Compare_Preload_State
#
输出比较预加载使能
启用后,CCR寄存器的值在下一个更新事件时才加载,避免中间状态导致的脉冲失真。
| 名称 | 值 | 简述 |
|---|---|---|
TIM_OCPreload_Enable |
0x0008 |
启用预加载 |
TIM_OCPreload_Disable |
0x0000 |
禁用预加载(立即生效) |
以上所有值都强制转换为
uint16_t
TIM_Output_Compare_Fast_State
#
输出比较快速模式使能
启用后,输出在匹配后立即响应,减少延迟,适用于高速PWM控制。
| 名称 | 值 | 简述 |
|---|---|---|
TIM_OCFast_Enable |
0x0004 |
启用快速模式 |
TIM_OCFast_Disable |
0x0000 |
禁用快速模式(标准模式) |
以上所有值都强制转换为
uint16_t
TIM_Output_Compare_Clear_State
#
输出比较清除使能
启用后,外部事件(如刹车或触发)可清除OCREF信号,实现安全关断。
| 名称 | 值 | 简述 |
|---|---|---|
TIM_OCClear_Enable |
0x0080 |
启用清除功能 |
TIM_OCClear_Disable |
0x0000 |
禁用清除功能 |
以上所有值都强制转换为
uint16_t
TIM_Trigger_Output_Source
#
触发输出源选择
定义TRGO(触发输出)信号的来源,用于同步其他定时器或外设。
| 名称 | 值 | 简述 |
|---|---|---|
TIM_TRGOSource_Reset |
0x0000 |
UG位触发(软件或硬件更新) |
TIM_TRGOSource_Enable |
0x0010 |
CEN位触发(定时器使能) |
TIM_TRGOSource_Update |
0x0020 |
更新事件触发 |
TIM_TRGOSource_OC1 |
0x0030 |
通道1捕获/比较事件触发 |
TIM_TRGOSource_OC1Ref |
0x0040 |
OC1REF信号触发 |
TIM_TRGOSource_OC2Ref |
0x0050 |
OC2REF信号触发 |
TIM_TRGOSource_OC3Ref |
0x0060 |
OC3REF信号触发 |
TIM_TRGOSource_OC4Ref |
0x0070 |
OC4REF信号触发 |
以上所有值都强制转换为
uint16_t
TIM_Slave_Mode
#
从模式选择
定义定时器作为从设备时的同步行为,实现复杂时序控制。
| 名称 | 值 | 简述 |
|---|---|---|
TIM_SlaveMode_Reset |
0x0004 |
触发信号上升沿重置计数器 |
TIM_SlaveMode_Gated |
0x0005 |
触发信号为高时计数器才运行 |
TIM_SlaveMode_Trigger |
0x0006 |
触发信号上升沿启动计数器 |
TIM_SlaveMode_External1 |
0x0007 |
触发信号上升沿驱动计数器(外部时钟) |
以上所有值都强制转换为
uint16_t
TIM_Master_Slave_Mode
#
主从模式选择
启用后,当前定时器作为主定时器,其TRGO可触发其他从定时器,实现多定时器同步。
| 名称 | 值 | 简述 |
|---|---|---|
TIM_MasterSlaveMode_Enable |
0x0080 |
启用主从模式 |
TIM_MasterSlaveMode_Disable |
0x0000 |
禁用主从模式 |
以上所有值都强制转换为
uint16_t
TIM_Flags
#
状态标志位
用于查询定时器内部状态,如溢出、捕获、刹车等事件是否发生。
| 名称 | 值 | 简述 |
|---|---|---|
TIM_FLAG_Update |
0x0001 |
更新标志(计数器溢出/下溢) |
TIM_FLAG_CC1 |
0x0002 |
通道1捕获/比较标志 |
TIM_FLAG_CC2 |
0x0004 |
通道2捕获/比较标志 |
TIM_FLAG_CC3 |
0x0008 |
通道3捕获/比较标志 |
TIM_FLAG_CC4 |
0x0010 |
通道4捕获/比较标志 |
TIM_FLAG_COM |
0x0020 |
换向标志(仅TIM1) |
TIM_FLAG_Trigger |
0x0040 |
触发标志 |
TIM_FLAG_Break |
0x0080 |
刹车标志(仅TIM1) |
TIM_FLAG_CC1OF |
0x0200 |
通道1捕获溢出标志 |
TIM_FLAG_CC2OF |
0x0400 |
通道2捕获溢出标志 |
TIM_FLAG_CC3OF |
0x0800 |
通道3捕获溢出标志 |
TIM_FLAG_CC4OF |
0x1000 |
通道4捕获溢出标志 |
以上所有值都强制转换为
uint16_t
TIM_Legacy
#
向后兼容别名
为兼容旧代码定义的别名,功能与对应常量完全相同,仅名称不同。
| 名称 | 值 | 简述 |
|---|---|---|
TIM_DMABurstLength_1Byte |
TIM_DMABurstLength_1Transfer |
1字节传输(等价于1次传输) |
TIM_DMABurstLength_2Bytes |
TIM_DMABurstLength_2Transfers |
2字节传输 |
TIM_DMABurstLength_3Bytes |
TIM_DMABurstLength_3Transfers |
3字节传输 |
TIM_DMABurstLength_4Bytes |
TIM_DMABurstLength_4Transfers |
4字节传输 |
TIM_DMABurstLength_5Bytes |
TIM_DMABurstLength_5Transfers |
5字节传输 |
TIM_DMABurstLength_6Bytes |
TIM_DMABurstLength_6Transfers |
6字节传输 |
TIM_DMABurstLength_7Bytes |
TIM_DMABurstLength_7Transfers |
7字节传输 |
TIM_DMABurstLength_8Bytes |
TIM_DMABurstLength_8Transfers |
8字节传输 |
TIM_DMABurstLength_9Bytes |
TIM_DMABurstLength_9Transfers |
9字节传输 |
TIM_DMABurstLength_10Bytes |
TIM_DMABurstLength_10Transfers |
10字节传输 |
TIM_DMABurstLength_11Bytes |
TIM_DMABurstLength_11Transfers |
11字节传输 |
TIM_DMABurstLength_12Bytes |
TIM_DMABurstLength_12Transfers |
12字节传输 |
TIM_DMABurstLength_13Bytes |
TIM_DMABurstLength_13Transfers |
13字节传输 |
TIM_DMABurstLength_14Bytes |
TIM_DMABurstLength_14Transfers |
14字节传输 |
TIM_DMABurstLength_15Bytes |
TIM_DMABurstLength_15Transfers |
15字节传输 |
TIM_DMABurstLength_16Bytes |
TIM_DMABurstLength_16Transfers |
16字节传输 |
TIM_DMABurstLength_17Bytes |
TIM_DMABurstLength_17Transfers |
17字节传输 |
TIM_DMABurstLength_18Bytes |
TIM_DMABurstLength_18Transfers |
18字节传输 |
以上所有值均为宏别名,实际值与右侧常量一致
枚举 #
FunctionalState
#
功能状态枚举
用于控制使能/禁用功能,是固件库中广泛使用的布尔型枚举,替代传统0/1常量,提高代码可读性。
| 名称 | 值 |
|---|---|
DISABLE |
0 |
ENABLE |
1 |
结构体 #
TIM_TimeBaseInitTypeDef
#
定时器基本定时初始化结构体
用于配置定时器的时基参数,包括预分频、计数模式、自动重载值和重复计数器。适用于生成固定频率PWM、定时中断或测量时间间隔。
| 名称 | 类型 | 简述 |
|---|---|---|
TIM_Prescaler |
uint16_t |
预分频值,范围0~0xFFFF,决定计数器时钟频率 = TIMxCLK / (Prescaler + 1) |
TIM_CounterMode |
uint16_t |
计数模式,选择向上、向下或中心对齐模式,影响PWM对称性和频率 |
TIM_Period |
uint16_t |
自动重载值,范围0~0xFFFF,决定计数周期,PWM频率 = TIMxCLK / [(Prescaler+1) × (Period+1)] |
TIM_ClockDivision |
uint16_t |
时钟分频,用于死区和滤波逻辑,不影响主计数器频率 |
TIM_RepetitionCounter |
uint8_t |
重复计数器,仅TIM1有效,决定PWM周期数(边沿对齐:N+1周期;中心对齐:2×(N+1)半周期) |
TIM_OCInitTypeDef
#
输出比较初始化结构体
用于配置PWM或输出比较通道的模式、极性、使能状态和脉冲宽度。支持主通道和互补通道(仅TIM1),适用于电机驱动、LED调光和信号生成。
| 名称 | 类型 | 简述 |
|---|---|---|
TIM_OCMode |
uint16_t |
输出模式,如PWM1、PWM2、定时、翻转等 |
TIM_OutputState |
uint16_t |
主输出通道使能状态 |
TIM_OutputNState |
uint16_t |
互补输出通道使能状态(仅TIM1) |
TIM_Pulse |
uint16_t |
比较值,决定PWM占空比 = Pulse / Period |
TIM_OCPolarity |
uint16_t |
主输出极性(高/低有效) |
TIM_OCNPolarity |
uint16_t |
互补输出极性(仅TIM1) |
TIM_OCIdleState |
uint16_t |
主通道空闲状态电平(仅TIM1) |
TIM_OCNIdleState |
uint16_t |
互补通道空闲状态电平(仅TIM1) |
TIM_ICInitTypeDef
#
输入捕获初始化结构体
用于配置输入捕获通道的极性、映射、预分频和滤波,适用于测量脉冲宽度、频率或编码器位置。
| 名称 | 类型 | 简述 |
|---|---|---|
TIM_Channel |
uint16_t |
选择通道1~4 |
TIM_ICPolarity |
uint16_t |
捕获触发边沿(上升、下降或双边沿) |
TIM_ICSelection |
uint16_t |
输入映射方式(直接、交叉或TRC) |
TIM_ICPrescaler |
uint16_t |
捕获预分频,降低采样频率 |
TIM_ICFilter |
uint16_t |
数字滤波器阶数,范围0 |
TIM_BDTRInitTypeDef
#
刹车与死区初始化结构体(仅TIM1)
用于配置高级定时器的安全特性,包括死区时间、刹车极性、自动输出使能和锁定级别,适用于电机驱动的防直通保护。
| 名称 | 类型 | 简述 |
|---|---|---|
TIM_OSSRState |
uint16_t |
运行状态关断使能(故障时输出是否强制为低) |
TIM_OSSIState |
uint16_t |
空闲状态关断使能(停机时输出是否强制为低) |
TIM_LOCKLevel |
uint16_t |
配置锁定级别,防止意外修改关键参数 |
TIM_DeadTime |
uint16_t |
死区时间,范围0~0xFF,单位为定时器时钟周期,用于防止主/互补通道同时导通 |
TIM_Break |
uint16_t |
是否启用外部刹车输入 |
TIM_BreakPolarity |
uint16_t |
刹车输入极性(高/低有效) |
TIM_AutomaticOutput |
uint16_t |
是否启用自动输出使能(CEN=1时自动置位MOE) |
函数 #
TIM_DeInit
#
void TIM_DeInit(TIM_TypeDef *TIMx)
将指定的TIMx外设寄存器复位为默认值,通过复位APB时钟实现,确保寄存器状态完全清除。适用于系统初始化或异常恢复。
参数:
| 名称 | 类型 | 简述 |
|---|---|---|
TIMx |
TIM_TypeDef * |
定时器实例指针,可为TIM1或TIM2 |
返回值:
无
TIM_TimeBaseInit
#
void TIM_TimeBaseInit(TIM_TypeDef *TIMx, TIM_TimeBaseInitTypeDef *TIM_TimeBaseInitStruct)
根据结构体配置定时器的基本时基参数,包括预分频、计数模式、周期和重复计数器。调用后需手动启动定时器(TIM_Cmd)。
参数:
| 名称 | 类型 | 简述 |
|---|---|---|
TIMx |
TIM_TypeDef * |
定时器实例指针(TIM1或TIM2) |
TIM_TimeBaseInitStruct |
TIM_TimeBaseInitTypeDef * |
指向初始化结构体的指针 |
返回值:
无
TIM_OC1Init
#
void TIM_OC1Init(TIM_TypeDef *TIMx, TIM_OCInitTypeDef *TIM_OCInitStruct)
初始化通道1的输出比较功能,配置PWM模式、极性、使能状态和脉冲值。
参数:
| 名称 | 类型 | 简述 |
|---|---|---|
TIMx |
TIM_TypeDef * |
定时器实例指针(TIM1或TIM2) |
TIM_OCInitStruct |
TIM_OCInitTypeDef * |
指向输出比较初始化结构体的指针 |
返回值:
无
TIM_OC2Init
#
void TIM_OC2Init(TIM_TypeDef *TIMx, TIM_OCInitTypeDef *TIM_OCInitStruct)
初始化通道2的输出比较功能,配置PWM模式、极性、使能状态和脉冲值。
参数:
| 名称 | 类型 | 简述 |
|---|---|---|
TIMx |
TIM_TypeDef * |
定时器实例指针(TIM1或TIM2) |
TIM_OCInitStruct |
TIM_OCInitTypeDef * |
指向输出比较初始化结构体的指针 |
返回值:
无
TIM_OC3Init
#
void TIM_OC3Init(TIM_TypeDef *TIMx, TIM_OCInitTypeDef *TIM_OCInitStruct)
初始化通道3的输出比较功能,仅TIM1支持。
参数:
| 名称 | 类型 | 简述 |
|---|---|---|
TIMx |
TIM_TypeDef * |
定时器实例指针(仅TIM1) |
TIM_OCInitStruct |
TIM_OCInitTypeDef * |
指向输出比较初始化结构体的指针 |
返回值:
无
TIM_OC4Init
#
void TIM_OC4Init(TIM_TypeDef *TIMx, TIM_OCInitTypeDef *TIM_OCInitStruct)
初始化通道4的输出比较功能,仅TIM1支持。
参数:
| 名称 | 类型 | 简述 |
|---|---|---|
TIMx |
TIM_TypeDef * |
定时器实例指针(仅TIM1) |
TIM_OCInitStruct |
TIM_OCInitTypeDef * |
指向输出比较初始化结构体的指针 |
返回值:
无
TIM_ICInit
#
void TIM_ICInit(TIM_TypeDef *TIMx, TIM_ICInitTypeDef *TIM_ICInitStruct)
初始化输入捕获通道,根据通道号自动调用TIx_Config配置输入滤波、极性和映射。
参数:
| 名称 | 类型 | 简述 |
|---|---|---|
TIMx |
TIM_TypeDef * |
定时器实例指针(TIM1或TIM2) |
TIM_ICInitStruct |
TIM_ICInitTypeDef * |
指向输入捕获初始化结构体的指针 |
返回值:
无
TIM_PWMIConfig
#
void TIM_PWMIConfig(TIM_TypeDef *TIMx, TIM_ICInitTypeDef *TIM_ICInitStruct)
配置定时器为PWM输入模式,自动设置两个通道(如CH1和CH2)为互补捕获,用于测量外部PWM信号的周期和占空比。
参数:
| 名称 | 类型 | 简述 |
|---|---|---|
TIMx |
TIM_TypeDef * |
定时器实例指针(TIM1或TIM2) |
TIM_ICInitStruct |
TIM_ICInitTypeDef * |
指向输入捕获初始化结构体的指针(指定主通道) |
返回值:
无
TIM_BDTRConfig
#
void TIM_BDTRConfig(TIM_TypeDef *TIMx, TIM_BDTRInitTypeDef *TIM_BDTRInitStruct)
配置高级定时器(TIM1)的刹车、死区、锁定和自动输出功能。仅在TIM1上有效。
参数:
| 名称 | 类型 | 简述 |
|---|---|---|
TIMx |
TIM_TypeDef * |
定时器实例指针(仅TIM1) |
TIM_BDTRInitStruct |
TIM_BDTRInitTypeDef * |
指向刹车与死区初始化结构体的指针 |
返回值:
无
TIM_TimeBaseStructInit
#
void TIM_TimeBaseStructInit(TIM_TimeBaseInitTypeDef *TIM_TimeBaseInitStruct)
将TIM_TimeBaseInitTypeDef结构体所有成员初始化为默认值,便于用户仅修改必要字段。
参数:
| 名称 | 类型 | 简述 |
|---|---|---|
TIM_TimeBaseInitStruct |
TIM_TimeBaseInitTypeDef * |
指向待初始化结构体的指针 |
返回值:
无
TIM_OCStructInit
#
void TIM_OCStructInit(TIM_OCInitTypeDef *TIM_OCInitStruct)
将TIM_OCInitTypeDef结构体所有成员初始化为默认值,如关闭输出、设置为定时模式、脉冲为0。
参数:
| 名称 | 类型 | 简述 |
|---|---|---|
TIM_OCInitStruct |
TIM_OCInitTypeDef * |
指向待初始化结构体的指针 |
返回值:
无
TIM_ICStructInit
#
void TIM_ICStructInit(TIM_ICInitTypeDef *TIM_ICInitStruct)
将TIM_ICInitTypeDef结构体初始化为默认值:通道1、上升沿、直接映射、无预分频、无滤波。
参数:
| 名称 | 类型 | 简述 |
|---|---|---|
TIM_ICInitStruct |
TIM_ICInitTypeDef * |
指向待初始化结构体的指针 |
返回值:
无
TIM_BDTRStructInit
#
void TIM_BDTRStructInit(TIM_BDTRInitTypeDef *TIM_BDTRInitStruct)
将TIM_BDTRInitTypeDef结构体初始化为安全默认值:禁用刹车、死区为0、无锁定、无自动输出。
参数:
| 名称 | 类型 | 简述 |
|---|---|---|
TIM_BDTRInitStruct |
TIM_BDTRInitTypeDef * |
指向待初始化结构体的指针 |
返回值:
无
TIM_Cmd
#
void TIM_Cmd(TIM_TypeDef *TIMx, FunctionalState NewState)
启用或禁用定时器计数器。调用后定时器开始或停止计数,但不影响寄存器配置。
参数:
| 名称 | 类型 | 简述 |
|---|---|---|
TIMx |
TIM_TypeDef * |
定时器实例指针(TIM1或TIM2) |
NewState |
FunctionalState |
ENABLE(启动)或DISABLE(停止) |
返回值:
无
TIM_CtrlPWMOutputs
#
void TIM_CtrlPWMOutputs(TIM_TypeDef *TIMx, FunctionalState NewState)
启用或禁用所有PWM输出通道(主和互补),通过控制BDTR寄存器的MOE位实现。用于紧急关断,不影响计数器运行。
参数:
| 名称 | 类型 | 简述 |
|---|---|---|
TIMx |
TIM_TypeDef * |
定时器实例指针(TIM1或TIM2) |
NewState |
FunctionalState |
ENABLE(使能输出)或DISABLE(禁用输出) |
返回值:
无
TIM_ITConfig
#
void TIM_ITConfig(TIM_TypeDef *TIMx, uint16_t TIM_IT, FunctionalState NewState)
使能或禁用指定的定时器中断源。
参数:
| 名称 | 类型 | 简述 |
|---|---|---|
TIMx |
TIM_TypeDef * |
定时器实例指针(TIM1或TIM2) |
TIM_IT |
uint16_t |
中断源,如TIM_IT_Update、TIM_IT_CC1等 |
NewState |
FunctionalState |
ENABLE或DISABLE |
返回值:
无
TIM_GenerateEvent
#
void TIM_GenerateEvent(TIM_TypeDef *TIMx, uint16_t TIM_EventSource)
通过软件生成指定事件,触发更新、捕获、换向或刹车,等效于硬件事件。常用于同步或调试。
参数:
| 名称 | 类型 | 简述 |
|---|---|---|
TIMx |
TIM_TypeDef * |
定时器实例指针(TIM1或TIM2) |
TIM_EventSource |
uint16_t |
事件源,如TIM_EventSource_Update、TIM_EventSource_CC1等 |
返回值:
无
TIM_DMAConfig
#
void TIM_DMAConfig(TIM_TypeDef *TIMx, uint16_t TIM_DMABase, uint16_t TIM_DMABurstLength)
配置DMA传输的基地址和突发长度,用于批量读写定时器寄存器。需配合TIM_DMACmd启用DMA请求。
参数:
| 名称 | 类型 | 简述 |
|---|---|---|
TIMx |
TIM_TypeDef * |
定时器实例指针(TIM1或TIM2) |
TIM_DMABase |
uint16_t |
DMA目标寄存器基地址,如TIM_DMABase_CCR1 |
TIM_DMABurstLength |
uint16_t |
突发传输长度,如TIM_DMABurstLength_5Transfers |
返回值:
无
TIM_DMACmd
#
void TIM_DMACmd(TIM_TypeDef *TIMx, uint16_t TIM_DMASource, FunctionalState NewState)
使能或禁用指定的DMA请求源。
参数:
| 名称 | 类型 | 简述 |
|---|---|---|
TIMx |
TIM_TypeDef * |
定时器实例指针(TIM1或TIM2) |
TIM_DMASource |
uint16_t |
DMA源,如TIM_DMA_Update、TIM_DMA_CC1等 |
NewState |
FunctionalState |
ENABLE或DISABLE |
返回值:
无
TIM_InternalClockConfig
#
void TIM_InternalClockConfig(TIM_TypeDef *TIMx)
配置定时器使用内部时钟作为主时钟源,清除从模式控制寄存器的触发源设置。
参数:
| 名称 | 类型 | 简述 |
|---|---|---|
TIMx |
TIM_TypeDef * |
定时器实例指针(TIM1或TIM2) |
返回值:
无
TIM_ITRxExternalClockConfig
#
void TIM_ITRxExternalClockConfig(TIM_TypeDef *TIMx, uint16_t TIM_InputTriggerSource)
将内部触发源(ITRx)配置为外部时钟输入,用于同步多个定时器。
参数:
| 名称 | 类型 | 简述 |
|---|---|---|
TIMx |
TIM_TypeDef * |
定时器实例指针(TIM1或TIM2) |
TIM_InputTriggerSource |
uint16_t |
内部触发源,如TIM_TS_ITR0、TIM_TS_ITR1等 |
返回值:
无
TIM_TIxExternalClockConfig
#
void TIM_TIxExternalClockConfig(TIM_TypeDef *TIMx, uint16_t TIM_TIxExternalCLKSource, uint16_t TIM_ICPolarity, uint16_t ICFilter)
将TI1或TI2引脚配置为外部时钟输入,支持边沿检测或滤波输入。
参数:
| 名称 | 类型 | 简述 |
|---|---|---|
TIMx |
TIM_TypeDef * |
定时器实例指针(TIM1或TIM2) |
TIM_TIxExternalCLKSource |
uint16_t |
外部时钟源,如TIM_TIxExternalCLK1Source_TI1 |
TIM_ICPolarity |
uint16_t |
输入极性,如TIM_ICPolarity_Rising |
ICFilter |
uint16_t |
数字滤波阶数,0~0xF |
返回值:
无
TIM_ETRClockMode1Config
#
void TIM_ETRClockMode1Config(TIM_TypeDef *TIMx, uint16_t TIM_ExtTRGPrescaler, uint16_t TIM_ExtTRGPolarity, uint16_t ExtTRGFilter)
配置外部触发输入(ETR)为外部时钟模式1:ETR信号经分频、极性、滤波后驱动计数器。
参数:
| 名称 | 类型 | 简述 |
|---|---|---|
TIMx |
TIM_TypeDef * |
定时器实例指针(TIM1或TIM2) |
TIM_ExtTRGPrescaler |
uint16_t |
ETR预分频,如TIM_ExtTRGPSC_DIV2 |
TIM_ExtTRGPolarity |
uint16_t |
ETR极性,如TIM_ExtTRGPolarity_NonInverted |
ExtTRGFilter |
uint16_t |
ETR滤波阶数,0~0xF |
返回值:
无
TIM_ETRClockMode2Config
#
void TIM_ETRClockMode2Config(TIM_TypeDef *TIMx, uint16_t TIM_ExtTRGPrescaler, uint16_t TIM_ExtTRGPolarity, uint16_t ExtTRGFilter)
配置外部触发输入(ETR)为外部时钟模式2:ETR信号直接作为时钟,计数器在每个有效边沿递增。
参数:
| 名称 | 类型 | 简述 |
|---|---|---|
TIMx |
TIM_TypeDef * |
定时器实例指针(TIM1或TIM2) |
TIM_ExtTRGPrescaler |
uint16_t |
ETR预分频,如TIM_ExtTRGPSC_DIV2 |
TIM_ExtTRGPolarity |
uint16_t |
ETR极性,如TIM_ExtTRGPolarity_NonInverted |
ExtTRGFilter |
uint16_t |
ETR滤波阶数,0~0xF |
返回值:
无
TIM_ETRConfig
#
void TIM_ETRConfig(TIM_TypeDef *TIMx, uint16_t TIM_ExtTRGPrescaler, uint16_t TIM_ExtTRGPolarity, uint16_t ExtTRGFilter)
配置外部触发输入(ETR)的预分频、极性和滤波参数,但不启用其作为时钟源。
参数:
| 名称 | 类型 | 简述 |
|---|---|---|
TIMx |
TIM_TypeDef * |
定时器实例指针(TIM1或TIM2) |
TIM_ExtTRGPrescaler |
uint16_t |
ETR预分频,如TIM_ExtTRGPSC_DIV2 |
TIM_ExtTRGPolarity |
uint16_t |
ETR极性,如TIM_ExtTRGPolarity_NonInverted |
ExtTRGFilter |
uint16_t |
ETR滤波阶数,0~0xF |
返回值:
无
TIM_PrescalerConfig
#
void TIM_PrescalerConfig(TIM_TypeDef *TIMx, uint16_t Prescaler, uint16_t TIM_PSCReloadMode)
动态修改预分频器值,支持立即更新或等待更新事件。
参数:
| 名称 | 类型 | 简述 |
|---|---|---|
TIMx |
TIM_TypeDef * |
定时器实例指针(TIM1或TIM2) |
Prescaler |
uint16_t |
新的预分频值(0~0xFFFF) |
TIM_PSCReloadMode |
uint16_t |
更新模式,TIM_PSCReloadMode_Update或TIM_PSCReloadMode_Immediate |
返回值:
无
TIM_CounterModeConfig
#
void TIM_CounterModeConfig(TIM_TypeDef *TIMx, uint16_t TIM_CounterMode)
动态切换计数模式(向上、向下、中心对齐),适用于需要改变PWM对称性的应用。
参数:
| 名称 | 类型 | 简述 |
|---|---|---|
TIMx |
TIM_TypeDef * |
定时器实例指针(TIM1或TIM2) |
TIM_CounterMode |
uint16_t |
计数模式,如TIM_CounterMode_Up、TIM_CounterMode_CenterAligned1等 |
返回值:
无
TIM_SelectInputTrigger
#
void TIM_SelectInputTrigger(TIM_TypeDef *TIMx, uint16_t TIM_InputTriggerSource)
选择定时器的从模式触发源,用于同步多个定时器或实现复杂时序。
参数:
| 名称 | 类型 | 简述 |
|---|---|---|
TIMx |
TIM_TypeDef * |
定时器实例指针(TIM1或TIM2) |
TIM_InputTriggerSource |
uint16_t |
触发源,如TIM_TS_ITR0、TIM_TS_ETRF等 |
返回值:
无
TIM_EncoderInterfaceConfig
#
void TIM_EncoderInterfaceConfig(TIM_TypeDef *TIMx, uint16_t TIM_EncoderMode, uint16_t TIM_IC1Polarity, uint16_t TIM_IC2Polarity)
配置定时器为编码器接口模式,支持1x、2x或4x分辨率,用于读取旋转编码器位置。
参数:
| 名称 | 类型 | 简述 |
|---|---|---|
TIMx |
TIM_TypeDef * |
定时器实例指针(TIM1或TIM2) |
TIM_EncoderMode |
uint16_t |
编码器模式,如TIM_EncoderMode_TI12 |
TIM_IC1Polarity |
uint16_t |
TI1输入极性 |
TIM_IC2Polarity |
uint16_t |
TI2输入极性 |
返回值:
无
TIM_ForcedOC1Config
#
void TIM_ForcedOC1Config(TIM_TypeDef *TIMx, uint16_t TIM_ForcedAction)
强制通道1输出为高或低电平,绕过PWM逻辑,用于调试或紧急控制。
参数:
| 名称 | 类型 | 简述 |
|---|---|---|
TIMx |
TIM_TypeDef * |
定时器实例指针(TIM1或TIM2) |
TIM_ForcedAction |
uint16_t |
强制动作,TIM_ForcedAction_Active或TIM_ForcedAction_InActive |
返回值:
无
TIM_ForcedOC2Config
#
void TIM_ForcedOC2Config(TIM_TypeDef *TIMx, uint16_t TIM_ForcedAction)
强制通道2输出为高或低电平。
参数:
| 名称 | 类型 | 简述 |
|---|---|---|
TIMx |
TIM_TypeDef * |
定时器实例指针(TIM1或TIM2) |
TIM_ForcedAction |
uint16_t |
强制动作,TIM_ForcedAction_Active或TIM_ForcedAction_InActive |
返回值:
无
TIM_ForcedOC3Config
#
void TIM_ForcedOC3Config(TIM_TypeDef *TIMx, uint16_t TIM_ForcedAction)
强制通道3输出为高或低电平(仅TIM1)。
参数:
| 名称 | 类型 | 简述 |
|---|---|---|
TIMx |
TIM_TypeDef * |
定时器实例指针(仅TIM1) |
TIM_ForcedAction |
uint16_t |
强制动作,TIM_ForcedAction_Active或TIM_ForcedAction_InActive |
返回值:
无
TIM_ForcedOC4Config
#
void TIM_ForcedOC4Config(TIM_TypeDef *TIMx, uint16_t TIM_ForcedAction)
强制通道4输出为高或低电平(仅TIM1)。
参数:
| 名称 | 类型 | 简述 |
|---|---|---|
TIMx |
TIM_TypeDef * |
定时器实例指针(仅TIM1) |
TIM_ForcedAction |
uint16_t |
强制动作,TIM_ForcedAction_Active或TIM_ForcedAction_InActive |
返回值:
无
TIM_ARRPreloadConfig
#
void TIM_ARRPreloadConfig(TIM_TypeDef *TIMx, FunctionalState NewState)
启用或禁用自动重载寄存器(ARR)的预加载功能,确保周期更新在下一个更新事件时生效。
参数:
| 名称 | 类型 | 简述 |
|---|---|---|
TIMx |
TIM_TypeDef * |
定时器实例指针(TIM1或TIM2) |
NewState |
FunctionalState |
ENABLE或DISABLE |
返回值:
无
TIM_SelectCOM
#
void TIM_SelectCOM(TIM_TypeDef *TIMx, FunctionalState NewState)
启用或禁用换向事件(仅TIM1),用于在三相电机换向时触发中断或DMA。
参数:
| 名称 | 类型 | 简述 |
|---|---|---|
TIMx |
TIM_TypeDef * |
定时器实例指针(仅TIM1) |
NewState |
FunctionalState |
ENABLE或DISABLE |
返回值:
无
TIM_SelectCCDMA
#
void TIM_SelectCCDMA(TIM_TypeDef *TIMx, FunctionalState NewState)
启用或禁用捕获/比较事件触发DMA,用于在每次比较匹配时自动传输数据。
参数:
| 名称 | 类型 | 简述 |
|---|---|---|
TIMx |
TIM_TypeDef * |
定时器实例指针(TIM1或TIM2) |
NewState |
FunctionalState |
ENABLE或DISABLE |
返回值:
无
TIM_CCPreloadControl
#
void TIM_CCPreloadControl(TIM_TypeDef *TIMx, FunctionalState NewState)
启用或禁用捕获/比较预加载控制位,影响所有通道的预加载行为(仅TIM1)。
参数:
| 名称 | 类型 | 简述 |
|---|---|---|
TIMx |
TIM_TypeDef * |
定时器实例指针(仅TIM1) |
NewState |
FunctionalState |
ENABLE或DISABLE |
返回值:
无
TIM_OC1PreloadConfig
#
void TIM_OC1PreloadConfig(TIM_TypeDef *TIMx, uint16_t TIM_OCPreload)
启用或禁用通道1的捕获/比较寄存器(CCR1)预加载功能。
参数:
| 名称 | 类型 | 简述 |
|---|---|---|
TIMx |
TIM_TypeDef * |
定时器实例指针(TIM1或TIM2) |
TIM_OCPreload |
uint16_t |
TIM_OCPreload_Enable或TIM_OCPreload_Disable |
返回值:
无
TIM_OC2PreloadConfig
#
void TIM_OC2PreloadConfig(TIM_TypeDef *TIMx, uint16_t TIM_OCPreload)
启用或禁用通道2的捕获/比较寄存器(CCR2)预加载功能。
参数:
| 名称 | 类型 | 简述 |
|---|---|---|
TIMx |
TIM_TypeDef * |
定时器实例指针(TIM1或TIM2) |
TIM_OCPreload |
uint16_t |
TIM_OCPreload_Enable或TIM_OCPreload_Disable |
返回值:
无
TIM_OC3PreloadConfig
#
void TIM_OC3PreloadConfig(TIM_TypeDef *TIMx, uint16_t TIM_OCPreload)
启用或禁用通道3的捕获/比较寄存器(CCR3)预加载功能(仅TIM1)。
参数:
| 名称 | 类型 | 简述 |
|---|---|---|
TIMx |
TIM_TypeDef * |
定时器实例指针(仅TIM1) |
TIM_OCPreload |
uint16_t |
TIM_OCPreload_Enable或TIM_OCPreload_Disable |
返回值:
无
TIM_OC4PreloadConfig
#
void TIM_OC4PreloadConfig(TIM_TypeDef *TIMx, uint16_t TIM_OCPreload)
启用或禁用通道4的捕获/比较寄存器(CCR4)预加载功能(仅TIM1)。
参数:
| 名称 | 类型 | 简述 |
|---|---|---|
TIMx |
TIM_TypeDef * |
定时器实例指针(仅TIM1) |
TIM_OCPreload |
uint16_t |
TIM_OCPreload_Enable或TIM_OCPreload_Disable |
返回值:
无
TIM_OC1FastConfig
#
void TIM_OC1FastConfig(TIM_TypeDef *TIMx, uint16_t TIM_OCFast)
启用或禁用通道1的快速输出模式,减少响应延迟。
参数:
| 名称 | 类型 | 简述 |
|---|---|---|
TIMx |
TIM_TypeDef * |
定时器实例指针(TIM1或TIM2) |
TIM_OCFast |
uint16_t |
TIM_OCFast_Enable或TIM_OCFast_Disable |
返回值:
无
TIM_OC2FastConfig
#
void TIM_OC2FastConfig(TIM_TypeDef *TIMx, uint16_t TIM_OCFast)
启用或禁用通道2的快速输出模式。
参数:
| 名称 | 类型 | 简述 |
|---|---|---|
TIMx |
TIM_TypeDef * |
定时器实例指针(TIM1或TIM2) |
TIM_OCFast |
uint16_t |
TIM_OCFast_Enable或TIM_OCFast_Disable |
返回值:
无
TIM_OC3FastConfig
#
void TIM_OC3FastConfig(TIM_TypeDef *TIMx, uint16_t TIM_OCFast)
启用或禁用通道3的快速输出模式(仅TIM1)。
参数:
| 名称 | 类型 | 简述 |
|---|---|---|
TIMx |
TIM_TypeDef * |
定时器实例指针(仅TIM1) |
TIM_OCFast |
uint16_t |
TIM_OCFast_Enable或TIM_OCFast_Disable |
返回值:
无
TIM_OC4FastConfig
#
void TIM_OC4FastConfig(TIM_TypeDef *TIMx, uint16_t TIM_OCFast)
启用或禁用通道4的快速输出模式(仅TIM1)。
参数:
| 名称 | 类型 | 简述 |
|---|---|---|
TIMx |
TIM_TypeDef * |
定时器实例指针(仅TIM1) |
TIM_OCFast |
uint16_t |
TIM_OCFast_Enable或TIM_OCFast_Disable |
返回值:
无
TIM_ClearOC1Ref
#
void TIM_ClearOC1Ref(TIM_TypeDef *TIMx, uint16_t TIM_OCClear)
启用或禁用外部事件对OC1REF信号的清除功能,用于安全关断。
参数:
| 名称 | 类型 | 简述 |
|---|---|---|
TIMx |
TIM_TypeDef * |
定时器实例指针(TIM1或TIM2) |
TIM_OCClear |
uint16_t |
TIM_OCClear_Enable或TIM_OCClear_Disable |
返回值:
无
TIM_ClearOC2Ref
#
void TIM_ClearOC2Ref(TIM_TypeDef *TIMx, uint16_t TIM_OCClear)
启用或禁用外部事件对OC2REF信号的清除功能。
参数:
| 名称 | 类型 | 简述 |
|---|---|---|
TIMx |
TIM_TypeDef * |
定时器实例指针(TIM1或TIM2) |
TIM_OCClear |
uint16_t |
TIM_OCClear_Enable或TIM_OCClear_Disable |
返回值:
无
TIM_ClearOC3Ref
#
void TIM_ClearOC3Ref(TIM_TypeDef *TIMx, uint16_t TIM_OCClear)
启用或禁用外部事件对OC3REF信号的清除功能(仅TIM1)。
参数:
| 名称 | 类型 | 简述 |
|---|---|---|
TIMx |
TIM_TypeDef * |
定时器实例指针(仅TIM1) |
TIM_OCClear |
uint16_t |
TIM_OCClear_Enable或TIM_OCClear_Disable |
返回值:
无
TIM_ClearOC4Ref
#
void TIM_ClearOC4Ref(TIM_TypeDef *TIMx, uint16_t TIM_OCClear)
启用或禁用外部事件对OC4REF信号的清除功能(仅TIM1)。
参数:
| 名称 | 类型 | 简述 |
|---|---|---|
TIMx |
TIM_TypeDef * |
定时器实例指针(仅TIM1) |
TIM_OCClear |
uint16_t |
TIM_OCClear_Enable或TIM_OCClear_Disable |
返回值:
无
TIM_OC1PolarityConfig
#
void TIM_OC1PolarityConfig(TIM_TypeDef *TIMx, uint16_t TIM_OCPolarity)
动态修改通道1的输出极性,无需重新初始化。
参数:
| 名称 | 类型 | 简述 |
|---|---|---|
TIMx |
TIM_TypeDef * |
定时器实例指针(TIM1或TIM2) |
TIM_OCPolarity |
uint16_t |
TIM_OCPolarity_High或TIM_OCPolarity_Low |
返回值:
无
TIM_OC1NPolarityConfig
#
void TIM_OC1NPolarityConfig(TIM_TypeDef *TIMx, uint16_t TIM_OCNPolarity)
动态修改通道1互补输出的极性(仅TIM1)。
参数:
| 名称 | 类型 | 简述 |
|---|---|---|
TIMx |
TIM_TypeDef * |
定时器实例指针(仅TIM1) |
TIM_OCNPolarity |
uint16_t |
TIM_OCNPolarity_High或TIM_OCNPolarity_Low |
返回值:
无
TIM_OC2PolarityConfig
#
void TIM_OC2PolarityConfig(TIM_TypeDef *TIMx, uint16_t TIM_OCPolarity)
动态修改通道2的输出极性。
参数:
| 名称 | 类型 | 简述 |
|---|---|---|
TIMx |
TIM_TypeDef * |
定时器实例指针(TIM1或TIM2) |
TIM_OCPolarity |
uint16_t |
TIM_OCPolarity_High或TIM_OCPolarity_Low |
返回值:
无
TIM_OC2NPolarityConfig
#
void TIM_OC2NPolarityConfig(TIM_TypeDef *TIMx, uint16_t TIM_OCNPolarity)
动态修改通道2互补输出的极性(仅TIM1)。
参数:
| 名称 | 类型 | 简述 |
|---|---|---|
TIMx |
TIM_TypeDef * |
定时器实例指针(仅TIM1) |
TIM_OCNPolarity |
uint16_t |
TIM_OCNPolarity_High或TIM_OCNPolarity_Low |
返回值:
无
TIM_OC3PolarityConfig
#
void TIM_OC3PolarityConfig(TIM_TypeDef *TIMx, uint16_t TIM_OCPolarity)
动态修改通道3的输出极性(仅TIM1)。
参数:
| 名称 | 类型 | 简述 |
|---|---|---|
TIMx |
TIM_TypeDef * |
定时器实例指针(仅TIM1) |
TIM_OCPolarity |
uint16_t |
TIM_OCPolarity_High或TIM_OCPolarity_Low |
返回值:
无
TIM_OC3NPolarityConfig
#
void TIM_OC3NPolarityConfig(TIM_TypeDef *TIMx, uint16_t TIM_OCNPolarity)
动态修改通道3互补输出的极性(仅TIM1)。
参数:
| 名称 | 类型 | 简述 |
|---|---|---|
TIMx |
TIM_TypeDef * |
定时器实例指针(仅TIM1) |
TIM_OCNPolarity |
uint16_t |
TIM_OCNPolarity_High或TIM_OCNPolarity_Low |
返回值:
无
TIM_OC4PolarityConfig
#
void TIM_OC4PolarityConfig(TIM_TypeDef *TIMx, uint16_t TIM_OCPolarity)
动态修改通道4的输出极性(仅TIM1)。
参数:
| 名称 | 类型 | 简述 |
|---|---|---|
TIMx |
TIM_TypeDef * |
定时器实例指针(仅TIM1) |
TIM_OCPolarity |
uint16_t |
TIM_OCPolarity_High或TIM_OCPolarity_Low |
返回值:
无
TIM_CCxCmd
#
void TIM_CCxCmd(TIM_TypeDef *TIMx, uint16_t TIM_Channel, uint16_t TIM_CCx)
启用或禁用指定通道的捕获/比较功能(主通道)。
参数:
| 名称 | 类型 | 简述 |
|---|---|---|
TIMx |
TIM_TypeDef * |
定时器实例指针(TIM1或TIM2) |
TIM_Channel |
uint16_t |
通道号,如TIM_Channel_1 |
TIM_CCx |
uint16_t |
TIM_CCx_Enable或TIM_CCx_Disable |
返回值:
无
TIM_CCxNCmd
#
void TIM_CCxNCmd(TIM_TypeDef *TIMx, uint16_t TIM_Channel, uint16_t TIM_CCxN)
启用或禁用指定通道的互补捕获/比较功能(仅TIM1)。
参数:
| 名称 | 类型 | 简述 |
|---|---|---|
TIMx |
TIM_TypeDef * |
定时器实例指针(仅TIM1) |
TIM_Channel |
uint16_t |
通道号,如TIM_Channel_1 |
TIM_CCxN |
uint16_t |
TIM_CCxN_Enable或TIM_CCxN_Disable |
返回值:
无
TIM_SelectOCxM
#
void TIM_SelectOCxM(TIM_TypeDef *TIMx, uint16_t TIM_Channel, uint16_t TIM_OCMode)
动态切换指定通道的输出模式(如从PWM1切换为PWM2),无需重新初始化。
参数:
| 名称 | 类型 | 简述 |
|---|---|---|
TIMx |
TIM_TypeDef * |
定时器实例指针(TIM1或TIM2) |
TIM_Channel |
uint16_t |
通道号,如TIM_Channel_1 |
TIM_OCMode |
uint16_t |
目标模式,如TIM_OCMode_PWM1、TIM_OCMode_Timing等 |
返回值:
无
TIM_UpdateDisableConfig
#
void TIM_UpdateDisableConfig(TIM_TypeDef *TIMx, FunctionalState NewState)
禁用更新事件(仅在计数器溢出/下溢时触发),用于防止中断或DMA被意外触发。
参数:
| 名称 | 类型 | 简述 |
|---|---|---|
TIMx |
TIM_TypeDef * |
定时器实例指针(TIM1或TIM2) |
NewState |
FunctionalState |
ENABLE或DISABLE |
返回值:
无
TIM_UpdateRequestConfig
#
void TIM_UpdateRequestConfig(TIM_TypeDef *TIMx, uint16_t TIM_UpdateSource)
选择更新事件的触发源,决定何时产生更新中断或DMA请求。
参数:
| 名称 | 类型 | 简述 |
|---|---|---|
TIMx |
TIM_TypeDef * |
定时器实例指针(TIM1或TIM2) |
TIM_UpdateSource |
uint16_t |
TIM_UpdateSource_Regular或TIM_UpdateSource_Global |
返回值:
无
TIM_SelectHallSensor
#
void TIM_SelectHallSensor(TIM_TypeDef *TIMx, FunctionalState NewState)
启用或禁用霍尔传感器接口(仅TIM1),用于三相无刷电机换向。
参数:
| 名称 | 类型 | 简述 |
|---|---|---|
TIMx |
TIM_TypeDef * |
定时器实例指针(仅TIM1) |
NewState |
FunctionalState |
ENABLE或DISABLE |
返回值:
无
TIM_SelectOnePulseMode
#
void TIM_SelectOnePulseMode(TIM_TypeDef *TIMx, uint16_t TIM_OPMode)
选择单脉冲模式,控制定时器在触发后是否循环运行。
参数:
| 名称 | 类型 | 简述 |
|---|---|---|
TIMx |
TIM_TypeDef * |
定时器实例指针(TIM1或TIM2) |
TIM_OPMode |
uint16_t |
TIM_OPMode_Single或TIM_OPMode_Repetitive |
返回值:
无
TIM_SelectOutputTrigger
#
void TIM_SelectOutputTrigger(TIM_TypeDef *TIMx, uint16_t TIM_TRGOSource)
选择TRGO(触发输出)信号的来源,用于同步其他定时器或外设。
参数:
| 名称 | 类型 | 简述 |
|---|---|---|
TIMx |
TIM_TypeDef * |
定时器实例指针(TIM1或TIM2) |
TIM_TRGOSource |
uint16_t |
触发源,如TIM_TRGOSource_Update、TIM_TRGOSource_OC1Ref等 |
返回值:
无
TIM_SelectSlaveMode
#
void TIM_SelectSlaveMode(TIM_TypeDef *TIMx, uint16_t TIM_SlaveMode)
配置定时器为从模式,响应外部触发信号。
参数:
| 名称 | 类型 | 简述 |
|---|---|---|
TIMx |
TIM_TypeDef * |
定时器实例指针(TIM1或TIM2) |
TIM_SlaveMode |
uint16_t |
从模式,如TIM_SlaveMode_Reset、TIM_SlaveMode_External1等 |
返回值:
无
TIM_SelectMasterSlaveMode
#
void TIM_SelectMasterSlaveMode(TIM_TypeDef *TIMx, uint16_t TIM_MasterSlaveMode)
启用或禁用主从模式,使当前定时器作为主定时器,其TRGO可触发从定时器。
参数:
| 名称 | 类型 | 简述 |
|---|---|---|
TIMx |
TIM_TypeDef * |
定时器实例指针(TIM1或TIM2) |
TIM_MasterSlaveMode |
uint16_t |
TIM_MasterSlaveMode_Enable或TIM_MasterSlaveMode_Disable |
返回值:
无
TIM_SetCounter
#
void TIM_SetCounter(TIM_TypeDef *TIMx, uint16_t Counter)
直接设置计数器寄存器值,用于同步或初始化计数。
参数:
| 名称 | 类型 | 简述 |
|---|---|---|
TIMx |
TIM_TypeDef * |
定时器实例指针(TIM1或TIM2) |
Counter |
uint16_t |
新的计数值(0~0xFFFF) |
返回值:
无
TIM_SetAutoreload
#
void TIM_SetAutoreload(TIM_TypeDef *TIMx, uint16_t Autoreload)
动态设置自动重载寄存器值,影响下一个周期的计数长度。
参数:
| 名称 | 类型 | 简述 |
|---|---|---|
TIMx |
TIM_TypeDef * |
定时器实例指针(TIM1或TIM2) |
Autoreload |
uint16_t |
新的自动重载值(0~0xFFFF) |
返回值:
无
TIM_SetCompare1
#
void TIM_SetCompare1(TIM_TypeDef *TIMx, uint16_t Compare1)
动态设置通道1的比较值,用于实时调整PWM占空比。
参数:
| 名称 | 类型 | 简述 |
|---|---|---|
TIMx |
TIM_TypeDef * |
定时器实例指针(TIM1或TIM2) |
Compare1 |
uint16_t |
新的比较值(0~0xFFFF) |
返回值:
无
TIM_SetCompare2
#
void TIM_SetCompare2(TIM_TypeDef *TIMx, uint16_t Compare2)
动态设置通道2的比较值。
参数:
| 名称 | 类型 | 简述 |
|---|---|---|
TIMx |
TIM_TypeDef * |
定时器实例指针(TIM1或TIM2) |
Compare2 |
uint16_t |
新的比较值(0~0xFFFF) |
返回值:
无
TIM_SetCompare3
#
void TIM_SetCompare3(TIM_TypeDef *TIMx, uint16_t Compare3)
动态设置通道3的比较值(仅TIM1)。
参数:
| 名称 | 类型 | 简述 |
|---|---|---|
TIMx |
TIM_TypeDef * |
定时器实例指针(仅TIM1) |
Compare3 |
uint16_t |
新的比较值(0~0xFFFF) |
返回值:
无
TIM_SetCompare4
#
void TIM_SetCompare4(TIM_TypeDef *TIMx, uint16_t Compare4)
动态设置通道4的比较值(仅TIM1)。
参数:
| 名称 | 类型 | 简述 |
|---|---|---|
TIMx |
TIM_TypeDef * |
定时器实例指针(仅TIM1) |
Compare4 |
uint16_t |
新的比较值(0~0xFFFF) |
返回值:
无
TIM_SetIC1Prescaler
#
void TIM_SetIC1Prescaler(TIM_TypeDef *TIMx, uint16_t TIM_ICPSC)
动态设置通道1输入捕获的预分频值。
参数:
| 名称 | 类型 | 简述 |
|---|---|---|
TIMx |
TIM_TypeDef * |
定时器实例指针(TIM1或TIM2) |
TIM_ICPSC |
uint16_t |
预分频值,如TIM_ICPSC_DIV2 |
返回值:
无
TIM_SetIC2Prescaler
#
void TIM_SetIC2Prescaler(TIM_TypeDef *TIMx, uint16_t TIM_ICPSC)
动态设置通道2输入捕获的预分频值。
参数:
| 名称 | 类型 | 简述 |
|---|---|---|
TIMx |
TIM_TypeDef * |
定时器实例指针(TIM1或TIM2) |
TIM_ICPSC |
uint16_t |
预分频值,如TIM_ICPSC_DIV2 |
返回值:
无
TIM_SetIC3Prescaler
#
void TIM_SetIC3Prescaler(TIM_TypeDef *TIMx, uint16_t TIM_ICPSC)
动态设置通道3输入捕获的预分频值(仅TIM1)。
参数:
| 名称 | 类型 | 简述 |
|---|---|---|
TIMx |
TIM_TypeDef * |
定时器实例指针(仅TIM1) |
TIM_ICPSC |
uint16_t |
预分频值,如TIM_ICPSC_DIV2 |
返回值:
无
TIM_SetIC4Prescaler
#
void TIM_SetIC4Prescaler(TIM_TypeDef *TIMx, uint16_t TIM_ICPSC)
动态设置通道4输入捕获的预分频值(仅TIM1)。
参数:
| 名称 | 类型 | 简述 |
|---|---|---|
TIMx |
TIM_TypeDef * |
定时器实例指针(仅TIM1) |
TIM_ICPSC |
uint16_t |
预分频值,如TIM_ICPSC_DIV2 |
返回值:
无
TIM_SetClockDivision
#
void TIM_SetClockDivision(TIM_TypeDef *TIMx, uint16_t TIM_CKD)
动态修改时钟分频系数,影响死区和滤波逻辑。
参数:
| 名称 | 类型 | 简述 |
|---|---|---|
TIMx |
TIM_TypeDef * |
定时器实例指针(TIM1或TIM2) |
TIM_CKD |
uint16_t |
分频值,如TIM_CKD_DIV2 |
返回值:
无
TIM_GetCapture1
#
uint16_t TIM_GetCapture1(TIM_TypeDef *TIMx)
读取通道1的捕获值,用于测量脉冲宽度或频率。
参数:
| 名称 | 类型 | 简述 |
|---|---|---|
TIMx |
TIM_TypeDef * |
定时器实例指针(TIM1或TIM2) |
返回值:
uint16_t:捕获寄存器CH1CVR的当前值
TIM_GetCapture2
#
uint16_t TIM_GetCapture2(TIM_TypeDef *TIMx)
读取通道2的捕获值。
参数:
| 名称 | 类型 | 简述 |
|---|---|---|
TIMx |
TIM_TypeDef * |
定时器实例指针(TIM1或TIM2) |
返回值:
uint16_t:捕获寄存器CH2CVR的当前值
TIM_GetCapture3
#
uint16_t TIM_GetCapture3(TIM_TypeDef *TIMx)
读取通道3的捕获值(仅TIM1)。
参数:
| 名称 | 类型 | 简述 |
|---|---|---|
TIMx |
TIM_TypeDef * |
定时器实例指针(仅TIM1) |
返回值:
uint16_t:捕获寄存器CH3CVR的当前值
TIM_GetCapture4
#
uint16_t TIM_GetCapture4(TIM_TypeDef *TIMx)
读取通道4的捕获值(仅TIM1)。
参数:
| 名称 | 类型 | 简述 |
|---|---|---|
TIMx |
TIM_TypeDef * |
定时器实例指针(仅TIM1) |
返回值:
uint16_t:捕获寄存器CH4CVR的当前值
TIM_GetCounter
#
uint16_t TIM_GetCounter(TIM_TypeDef *TIMx)
读取当前计数器值。
参数:
| 名称 | 类型 | 简述 |
|---|---|---|
TIMx |
TIM_TypeDef * |
定时器实例指针(TIM1或TIM2) |
返回值:
uint16_t:计数器寄存器CNT的当前值
TIM_GetPrescaler
#
uint16_t TIM_GetPrescaler(TIM_TypeDef *TIMx)
读取当前预分频器值。
参数:
| 名称 | 类型 | 简述 |
|---|---|---|
TIMx |
TIM_TypeDef * |
定时器实例指针(TIM1或TIM2) |
返回值:
uint16_t:预分频器寄存器PSC的当前值
TIM_GetFlagStatus
#
FlagStatus TIM_GetFlagStatus(TIM_TypeDef *TIMx, uint16_t TIM_FLAG)
查询指定标志位状态,用于轮询中断事件。
参数:
| 名称 | 类型 | 简述 |
|---|---|---|
TIMx |
TIM_TypeDef * |
定时器实例指针(TIM1或TIM2) |
TIM_FLAG |
uint16_t |
标志位,如TIM_FLAG_Update、TIM_FLAG_CC1等 |
返回值:
FlagStatus:SET(标志置位)或RESET(标志清零)
TIM_ClearFlag
#
void TIM_ClearFlag(TIM_TypeDef *TIMx, uint16_t TIM_FLAG)
清除指定的状态标志位,通常在中断服务程序中调用。
参数:
| 名称 | 类型 | 简述 |
|---|---|---|
TIMx |
TIM_TypeDef * |
定时器实例指针(TIM1或TIM2) |
TIM_FLAG |
uint16_t |
标志位,如TIM_FLAG_Update、TIM_FLAG_CC1等 |
返回值:
无
TIM_GetITStatus
#
ITStatus TIM_GetITStatus(TIM_TypeDef *TIMx, uint16_t TIM_IT)
检查指定中断是否发生且使能,用于判断中断来源。
参数:
| 名称 | 类型 | 简述 |
|---|---|---|
TIMx |
TIM_TypeDef * |
定时器实例指针(TIM1或TIM2) |
TIM_IT |
uint16_t |
中断源,如TIM_IT_Update、TIM_IT_CC1等 |
返回值:
ITStatus:SET(中断发生且使能)或RESET(未发生或未使能)
TIM_ClearITPendingBit
#
void TIM_ClearITPendingBit(TIM_TypeDef *TIMx, uint16_t TIM_IT)
清除指定中断的挂起位,必须在中断服务程序中调用以避免重复进入。
参数:
| 名称 | 类型 | 简述 |
|---|---|---|
TIMx |
TIM_TypeDef * |
定时器实例指针(TIM1或TIM2) |
TIM_IT |
uint16_t |
中断源,如TIM_IT_Update、TIM_IT_CC1等 |
返回值:
无
TIM_IndicateCaptureLevelCmd
#
void TIM_IndicateCaptureLevelCmd(TIM_TypeDef *TIMx, FunctionalState NewState)
启用或禁用捕获电平指示功能,当启用时,捕获事件会记录输入电平状态(高/低),用于分析信号。
参数:
| 名称 | 类型 | 简述 |
|---|---|---|
TIMx |
TIM_TypeDef * |
定时器实例指针(TIM1或TIM2) |
NewState |
FunctionalState |
ENABLE或DISABLE |
返回值:
无