跳过正文

ch32v00x_tim.h

目录
Ch32v00x软件文档 - 这篇文章属于一个选集。
§ 17: 本文

描述
#

该文件定义了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 数字滤波器阶数,范围00xF,用于消除噪声(每阶滤波116个时钟周期)

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

返回值:

Ch32v00x软件文档 - 这篇文章属于一个选集。
§ 17: 本文

相关文章

ch32v00x_adc.h

该文件定义了 CH32V00x 系列微控制器 ADC 外设的固件库所有函数原型、常量、枚举和结构体。ADC(模数转换器)支持单通道与多通道扫描转换、注入通道、模拟看门狗、DMA 请求、软件与外部触发等多种模式,适用于高精度模拟信号采集场景。本库通过寄存器掩码操作实现灵活配置,所有常量均以 uint32_t 或 uint8_t 类型定义,确保与硬件寄存器位域精确匹配。函数设计遵循标准外设库风格,支持初始化、启动、中断、校准、偏移设置等完整功能链,适用于工业控制、传感器接口、电源管理等嵌入式应用。

ch32v00x.h

该文件是 CH32V003 微控制器的外设访问层头文件,定义了所有外设寄存器的内存映射、位域常量、中断向量、时钟配置、GPIO 控制结构及系统级常量。它为标准外设库提供底层硬件抽象,使开发者可通过结构体指针直接访问寄存器,或通过位掩码配置外设功能。本文件不包含函数原型,仅提供寄存器定义与常量,是所有外设驱动开发的基础。

ch32v00x_dma.h

该文件定义了 CH32V00x 系列微控制器 DMA(直接存储器访问)外设的固件库函数原型、数据结构及常量宏。DMA 用于在不占用 CPU 资源的情况下实现外设与内存、内存与内存之间的高效数据传输,适用于高速数据采集、串口/ADC 缓冲、图像处理等场景。本库支持 7 个 DMA 通道,每个通道可独立配置传输方向、数据宽度、地址递增模式、优先级和循环模式,极大提升系统并发处理能力。