时钟
APB1
void RCC_APB1PeriphClockCmd(uint32_t RCC_APB1Periph, FunctionalState NewState)
:使能或失能 APB1 时钟
参数 |
可赋值 |
描述 |
RCC_APB1Periph |
RCC_APB1Periph_TIM2 RCC_APB1Periph_TIM3 RCC_APB1Periph_TIM4 |
RCC_APB1Periph_TIM5 RCC_APB1Periph_TIM6 RCC_APB1Periph_TIM7 |
RCC_APB1Periph_TIM12 RCC_APB1Periph_TIM13 RCC_APB1Periph_TIM14 |
RCC_APB1Periph_WWDG RCC_APB1Periph_SPI2 RCC_APB1Periph_SPI3 |
|
RCC_APB1Periph_USART2 RCC_APB1Periph_USART3 RCC_APB1Periph_USART4 |
RCC_APB1Periph_USART5 RCC_APB1Periph_I2C1 RCC_APB1Periph_I2C2 |
|
RCC_APB1Periph_USB RCC_APB1Periph_CAN1 RCC_APB1Periph_BKP |
RCC_APB1Periph_PWR RCC_APB1Periph_DAC RCC_APB1Periph_CEC |
|
NewState |
ENABLE |
使能 |
DISABLE |
失能 |
APB2
void RCC_APB2PeriphClockCmd(uint32_t RCC_APB2Periph, FunctionalState NewState)
:使能或失能 APB2 时钟
参数 |
可赋值 |
描述 |
RCC_APB2Periph |
RCC_APB2Periph_AFIO RCC_APB2Periph_GPIOA RCC_APB2Periph_GPIOB |
RCC_APB2Periph_GPIOC RCC_APB2Periph_GPIOD RCC_APB2Periph_GPIOE |
RCC_APB2Periph_GPIOF RCC_APB2Periph_GPIOG RCC_APB2Periph_ADC1 |
RCC_APB2Periph_ADC2 RCC_APB2Periph_TIM1 RCC_APB2Periph_SPI1 |
|
RCC_APB2Periph_TIM8 RCC_APB2Periph_USART1 RCC_APB2Periph_ADC3 |
RCC_APB2Periph_TIM15 RCC_APB2Periph_TIM16 RCC_APB2Periph_TIM17 |
|
RCC_APB2Periph_TIM9 RCC_APB2Periph_TIM10 RCC_APB2Periph_TIM11 |
||
NewState |
ENABLE |
使能 |
DISABLE |
失能 |
AHB
void RCC_AHBPeriphClockCmd(uint32_t RCC_AHBPeriph, FunctionalState NewState)
:使能或失能 AHB 时钟
参数 |
可赋值 |
描述 |
RCC_AHBPeriph |
RCC_AHBPeriph_DMA1 |
RCC_AHBPeriph_DMA2 |
RCC_AHBPeriph_SRAM |
RCC_AHBPeriph_FLITF |
|
RCC_AHBPeriph_CRC |
RCC_AHBPeriph_OTG_FS |
|
RCC_AHBPeriph_ETH_MAC |
RCC_AHBPeriph_ETH_MAC_Tx |
|
RCC_AHBPeriph_ETH_MAC_Rx |
RCC_AHBPeriph_FSMC |
|
RCC_AHBPeriph_SDIO |
||
NewState |
ENABLE |
使能 |
DISABLE |
失能 |
💡Tip:如果同个端口需要同时对不同引脚设置等 可以使用 按位或( | ) 来达成效果
GPIO 结构体(GPIO_InitTypeDef)
GPIO_Mode |
GPIO_Mode_AIN |
模拟输入 |
GPIO_Mode_IN_FLOATING |
浮动输入 |
|
GPIO_Mode_IPD |
下拉输入 |
|
GPIO_Mode_IPU |
上拉输入 |
|
GPIO_Mode_Out_OD |
开漏输出 |
|
GPIO_Mode_Out_PP |
推挽输出 |
|
GPIO_Mode_AF_OD |
复用开漏输出,不仅开漏且 IO 口复用别的功能 |
|
GPIO_Mode_AF_PP |
复用推挽输出,不仅推挽且 IO 口复用别的功能 |
|
GPIO_Pin |
GPIO_Pin_x |
x:引脚号 |
GPIO_Speed |
GPIO_Speed_2MHz |
时钟 2MHz 速度 |
GPIO_Speed_10MHz |
时钟 10MHz 速度 |
|
GPIO_Speed_50MHz |
时钟 50MHz 速度 |
Tips
- 普通功能的IO,通常2M
- 如果一个IO用作I2C通信,速度通常就10K到400K,选10M
- 如果是用作SPI功能,可能会到20M速度,那选50M
GPIO 库函数
GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct)
:用结构体参数来初始化 GOIO 口
参数 |
类型 |
描述 |
GPIOx |
GPIO_TypeDef* |
指向要初始化的GPIO端口的指针,如GPIOA |
GPIO_InitStruct |
GPIO_InitTypeDef* |
指向 GPIO_InitTypeDef 结构体地址 |
uint8_t GPIO_ReadInputDataBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin)
:读取单个输入引脚的状态
参数 |
类型 |
描述 |
GPIOx |
GPIO_TypeDef* |
指向要初始化的GPIO端口的指针,如GPIOA |
GPIO_Pin |
uint16_t |
读取的引脚编号,如GPIO_Pin_x,x:0~15 |
uint16_t GPIO_ReadInputData(GPIO_TypeDef* GPIOx)
:读取指定的 GPIO 端口的所有引脚输入状态
参数 |
类型 |
描述 |
GPIOx |
GPIO_TypeDef* |
指向要初始化的GPIO端口的指针,如GPIOA |
uint8_t GPIO_ReadOutputDataBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin)
:读取单个输出引脚的状态
参数 |
类型 |
描述 |
GPIOx |
GPIO_TypeDef* |
指向要初始化的GPIO端口的指针,如GPIOA |
GPIO_Pin |
uint16_t |
读取的引脚编号,如GPIO_Pin_x,x:0~15 |
uint16_t GPIO_ReadOutputData(GPIO_TypeDef* GPIOx)
:读取指定 GPIO 端口的所有引脚的当前输出状态
参数 |
类型 |
描述 |
GPIOx |
GPIO_TypeDef* |
指向要初始化的GPIO端口的指针,如GPIOA |
GPIO_SetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin)
:将指定的端口设置为高电平
参数 |
类型 |
描述 |
GPIOx |
GPIO_TypeDef* |
指向要初始化的GPIO端口的指针,如GPIOA |
GPIO_Pin |
uint16_t |
读取的引脚编号,如GPIO_Pin_x,x:0~15 |
GPIO_ResetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin)
:将指定的端口设置为低电平
参数 |
类型 |
描述 |
GPIOx |
GPIO_TypeDef* |
指向要初始化的GPIO端口的指针,如GPIOA |
GPIO_Pin |
uint16_t |
读取的引脚编号,如GPIO_Pin_x,x:0~15 |
GPIO_WriteBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin, BitAction BitVal)
:将指定的端口设置为指定电平
参数 |
类型 |
描述 |
GPIOx |
GPIO_TypeDef* |
指向要初始化的GPIO端口的指针,如GPIOA |
GPIO_Pin |
uint16_t |
读取的引脚编号,如GPIO_Pin_x,x:0~15 |
BitVal |
BitAction |
Bit_RESET:置低电平,Bit_SET:置高电平 |
GPIO_Write(GPIO_TypeDef* GPIOx, uint16_t PortVal);
:设置整个 GPIO 端口(Port)所有引脚状态
参数 |
类型 |
描述 |
GPIOx |
GPIO_TypeDef* |
指向要初始化的GPIO端口的指针,如GPIOA |
PortVal |
uint16_t |
一个16位的整数值,每一位对应端口一个引脚(1:高电平 0:低电平) |
GPIO_EXTILineConfig(uint8_t GPIO_PortSource, uint8_t GPIO_PinSource)
:配置 GPIO 引脚与外部中断线(EXTI)的映射关系
参数 |
类型 |
描述 |
GPIO_PortSource |
uint16_t |
指定 GPIO 端口,GPIO_PortSourceGPIOx(x:A~G) |
GPIO_PinSource |
uint16_t |
指定 GPIO 引脚号,GPIO_PinSourcex(x:0~15) |
外部中断结构体(EXTI_InitTypeDef)
EXTI_Line |
EXTI_Linex(x:0~19) |
设置中断线 |
EXTI_Mode |
EXTI_Mode_Interrupt |
设置中断模式 |
EXTI_Mode_Event |
设置事件模式 |
|
EXTI_Trigger |
EXTI_Trigger_Rising |
上升沿触发 |
EXTI_Trigger_Falling |
下降沿触发 |
|
EXTI_Trigger_Rising_Falling |
双边沿触发 |
|
EXTI_LineCmd |
ENABLE(使能)、DISABLE(不使能) |
启用或禁用 EXTI 线 |
外部中断 库函数
EXTI_DeInit(void)
:将外部中断/事件控制器(EXTI)的配置恢复到默认状态
EXTI_Init(EXTI_InitTypeDef* EXTI_InitStruct)
:根据结构体中的参数来初始化中断
参数 |
类型 |
描述 |
EXTI_InitStruct |
EXTI_InitTypeDef* |
指向 EXTI_InitTypeDef 结构体的地址 |
EXTI_StructInit(EXTI_InitTypeDef* EXTI_InitStruct)
:把参数传递的结构体赋一个默认值
参数 |
类型 |
描述 |
EXTI_InitStruct |
EXTI_InitTypeDef* |
指向 EXTI_InitTypeDef 结构体的地址 |
EXTI_GenerateSWInterrupt(uint32_t EXTI_Line)
:软件手动触发指定的外部中断线 ,即使没有实际的外部硬件信号(如引脚电平变化)也可模拟中断事件
参数 |
类型 |
描述 |
EXTI_Line |
uint32_t |
中断线,EXTI_Linex(x:0~19) |
FlagStatus EXTI_GetFlagStatus(uint32_t EXTI_Line)
:主程序中获取指定标志位是否置 1
返回值
-
- SET:标志位已置位(表示中断已触发)
- RESET:标志位未置位(表示中断未触发)
参数 |
类型 |
描述 |
EXTI_Line |
uint32_t |
中断线,EXTI_Linex(x:0~19) |
EXTI_ClearFlag(uint32_t EXTI_Line)
:主程序中清除外部中断线标志位
参数 |
类型 |
描述 |
EXTI_Line |
uint32_t |
中断线,EXTI_Linex(x:0~19) |
ITStatus EXTI_GetITStatus(uint32_t EXTI_Line)
:中断服务函数中获取指定标志位是否置 1
返回值
-
- SET:标志位已置位(表示中断已触发)
- RESET:标志位未置位(表示中断未触发)
参数 |
类型 |
描述 |
EXTI_Line |
uint32_t |
中断线,EXTI_Linex(x:0~19) |
EXTI_ClearITPendingBit(uint32_t EXTI_Line)
:中断服务函数中清除外部中断挂起标志位
参数 |
类型 |
描述 |
EXTI_Line |
uint32_t |
清除挂起标志位的 EXTI 线,EXTI_Linex(x:0~19) |
NVIC 结构体(NVIC_InitTypeDef)
NVIC_PriorityGroup_0
:4 位抢占优先级,0 位子优先级,4 位则设置 16 个不同级别NVIC_PriorityGroup_1
:3 位抢占优先级,1 位子优先级NVIC_PriorityGroup_2
:2 位抢占优先级,2 位子优先级NVIC_PriorityGroup_3
:1 位抢占优先级,3 位子优先级NVIC_PriorityGroup_4
:0 位抢占优先级,4 位子优先级
NVIC_IRQChannel (在stm32f10x.h 中查看需要的中断对应的通道是哪个) |
EXTIx_IRQn(x:1~4)、EXTI9_5_IRQn、EXTI15_10_IRQn |
外部中断通道(1~15) |
USARTx_IRQn(x:1~3) |
串口中断通道(1~3) |
|
TIMx_IRQn(x:2~7) |
定时器中断通道 |
|
NVIC_IRQChannelPreemptionPriority |
数字 |
设置抢占优先级 |
NVIC_IRQChannelSubPriority |
数字 |
设置子优先级 |
NVIC_IRQChannelCmd |
ENABLE(使能)、DISABLE(不使能) |
使能中断通道 |
NVIC 库函数
NVIC_Init(NVIC_InitTypeDef* NVIC_InitStruct)
:根据结构体中的参数来初始化 NVIC
参数 |
类型 |
描述 |
NVIC_InitStruct |
NVIC_InitTypeDef* |
指向 NVIC_InitTypeDef 结构体的地址 |
NVIC_PriorityGroupConfig(uint32_t NVIC_PriorityGroup)
:配置 NVIC 的优先级分组
参数 |
类型 |
描述 |
NVIC_PriorityGroup |
uint32_t |
NVIC_PriorityGroup_0,无抢占优先级,16 个子优先级 NVIC_PriorityGroup_1,2 个抢占优先级,8 个子优先级 NVIC_PriorityGroup_2,4 个抢占优先级,4 个子优先级 NVIC_PriorityGroup_3,8 个抢占优先级,2 个子优先级 NVIC_PriorityGroup_4,16 个抢占优先级,无子优先级 |
外部中断 服务函数
在 startup_stm32f10x_hd.s 里面
中断触发函数 |
EXTI0_IRQHandler |
EXTI1_IRQHandler |
EXTI2_IRQHandler |
EXTI3_IRQHandler |
EXTI4_IRQHandler |
EXTI9_5_IRQHandler |
EXTI15_10_IRQHandler |
定时器结构体(TIM_TimeBaseInitTypeDef)
TIM_ClockDivision |
TIM_CKD_DIV1 |
时钟不分频 |
TIM_CKD_DIV2 |
时钟分频 2 |
|
TIM_CKD_DIV4 |
时钟分频 4 |
|
TIM_CounterMode |
TIM_CounterMode_Up |
向上计数 |
TIM_CounterMode_Down |
向下计数 |
|
TIM_CounterMode_CenterAlignedx(x:1~3) |
三种中心计数 |
|
TIM_Period |
0~65535 |
自动重装载值ARR |
TIM_Prescaler |
0~65535 |
预分频值 PSC |
TIM_RepetitionCounter |
0x00 ~ 0xFF |
重复计数(仅高级定时器) |
输出比较和 PWM 结构体(TIM_OCInitTypeDef)
TIM_OCIdleState (只需高级定时器配置) |
TIM_OCIdleState_Reset |
空闲时输出低电平 |
TIM_OCIdleState_Set |
空闲时输出高电平 |
|
TIM_OCMode |
TIM_OCMode_Timing |
仅触发中断/DMA,不改变输出引脚电平(用于纯定时功能) |
TIM_OCMode_Active |
匹配时强制输出有效电平,直到下次更新事件或手动修改 |
|
TIM_OCMode_Inactive |
匹配时强制输出无效电平,直到下次更新事件或手动修改 |
|
TIM_OCMode_Toggle |
匹配时翻转输出电平 |
|
TIM_OCMode_PWM1 |
计数器值 小于 比较值(CCR)时,输出有效电平 计数器值 大于等于 比较值时,输出无效电平 |
|
TIM_OCMode_PWM2 |
计数器值 小于 比较值时,输出无效电平 计数器值 大于等于 比较值时,输出有效电平 |
|
TIM_OCNIdleState 设置互补通道空闲状态的电平 |
TIM_OCNIdleState_Set |
空闲时输出高电平 |
TIM_OCNIdleState_Reset |
空闲时输出低电平 |
|
TIM_OCNPolarity 设置互补输出通道极性 |
TIM_OCNPolarity_High |
有效电平为高电平 |
TIM_OCNPolarity_Low |
有效电平为低电平 |
|
TIM_OCPolarity 设置主输出通道极性 |
TIM_OCPolarity_High |
有效电平为高电平 |
TIM_OCPolarity_Low |
有效电平为低电平 |
|
TIM_OutputNState 使能/禁用互补输出通道 |
TIM_OutputNState_Enable |
使能 |
TIM_OutputNState_Disable |
禁用 |
|
TIM_OutputState 使能/禁用主输出通道 |
TIM_OutputState_Enable |
使能 |
TIM_OutputState_Disable |
禁用 |
|
TIM_Pulse |
0x0000 ~ 0xFFFF |
比较寄存器(CCRx)的初始值 |
定时器 库函数
TIM_DeInit(TIM_TypeDef* TIMx)
:将指定的定时器恢复到上电默认状态
参数 |
类型 |
描述 |
TIMx |
NVIC_InitTypeDef* |
指向TIM外设的指针,TIMx(x:1~8) |
TIM_TimeBaseInit(TIM_TypeDef* TIMx, TIM_TimeBaseInitTypeDef* TIM_TimeBaseInitStruct)
:时基单元初始化
参数 |
类型 |
描述 |
TIMx |
NVIC_InitTypeDef* |
指向TIM外设的指针,TIMx(x:1~8) |
TIM_TimeBaseInitStruct |
TIM_TimeBaseInitTypeDef* |
指向时基配置结构体指针 |
TIM_TimeBaseStructInit(TIM_TimeBaseInitTypeDef* TIM_TimeBaseInitStruct)
:默认值初始化时基单元
参数 |
类型 |
描述 |
TIM_TimeBaseInitStruct |
TIM_TimeBaseInitTypeDef* |
指向时基配置结构体指针 |
TIM_Cmd(TIM_TypeDef* TIMx, FunctionalState NewState)
:使能或禁用定时器
参数 |
类型 |
描述 |
TIMx |
NVIC_InitTypeDef* |
指向TIM外设的指针,TIMx(x:1~8) |
NewState |
FunctionalState |
ENABLE:启动,DISABLE:停止 |
TIM_ITConfig(TIM_TypeDef* TIMx, uint16_t TIM_IT, FunctionalState NewState)
:使能输出中断信号
参数 |
类型 |
描述 |
TIMx |
NVIC_InitTypeDef* |
指向TIM外设的指针,TIMx(x:1~8) |
TIM_IT |
uint16_t |
选择要操作的中断类型
|
NewState |
FunctionalState |
ENABLE:使能,DISABLE:失能 |
TIM_InternalClockConfig(TIM_TypeDef* TIMx)
:使用内部时钟模式
参数 |
类型 |
描述 |
TIMx |
TIM_TypeDef* |
指向TIM外设的指针,TIMx(x:1~8) |
TIM_ITRxExternalClockConfig(TIM_TypeDef* TIMx, uint16_t TIM_InputTriggerSource)
:使用外部时钟模式1
参数 |
类型 |
描述 |
TIMx |
TIM_TypeDef* |
指向TIM外设的指针,TIMx(x:1~8) |
TIM_InputTriggerSource |
uint16_t |
其它定时器,TIM_TS_ITRx(x:0~3) |
TIM_TIxExternalClockConfig(TIM_TypeDef* TIMx, uint16_t TIM_TIxExternalCLKSource, uint16_t TIM_ICPolarity, uint16_t ICFilter)
:使用 TIx 捕获通道时钟
参数 |
类型 |
描述 |
TIMx |
TIM_TypeDef* |
指向TIM外设的指针,TIMx(x:1~8) |
TIM_TIxExternalCLKSource |
uint16_t |
TIx 具体某个引脚 |
TIM_ICPolarity |
uint16_t |
输入捕获的极性
|
ICFilter |
uint16_t |
输入信号的数字滤波器
|
TIM_ETRClockMode1Config(TIM_TypeDef* TIMx, uint16_t TIM_ExtTRGPrescaler, uint16_t TIM_ExtTRGPolarity, uint16_t ExtTRGFilter)
:ETR 外部时钟模式1 输入的时钟
参数 |
类型 |
描述 |
TIMx |
TIM_TypeDef* |
指向TIM外设的指针,TIMx(x:1~8) |
TIM_ExtTRGPrescaler |
uint16_t |
ETR 预分频系数
|
TIM_ExtTRGPolarity |
uint16_t |
ETR 信号触发方式
|
ExtTRGFilter |
uint16_t |
ETR 信号的数字滤波器
|
TIM_ETRClockMode2Config(TIM_TypeDef* TIMx, uint16_t TIM_ExtTRGPrescaler, uint16_t TIM_ExtTRGPolarity, uint16_t ExtTRGFilter)
:ETR 外部时钟模式2 输入的时钟
参数 |
类型 |
描述 |
TIMx |
TIM_TypeDef* |
指向TIM外设的指针,TIMx(x:1~8) |
TIM_ExtTRGPrescaler |
uint16_t |
ETR 预分频系数
|
TIM_ExtTRGPolarity |
uint16_t |
ETR 信号触发方式
|
ExtTRGFilter |
uint16_t |
ETR 信号的数字滤波器
|
TIM_ETRConfig(TIM_TypeDef* TIMx, uint16_t TIM_ExtTRGPrescaler, uint16_t TIM_ExtTRGPolarity, uint16_t ExtTRGFilter)
:单独设置预分频器、触发方式、滤波器等
参数 |
类型 |
描述 |
TIMx |
TIM_TypeDef* |
指向TIM外设的指针,TIMx(x:1~8) |
TIM_ExtTRGPrescaler |
uint16_t |
ETR 预分频系数
|
TIM_ExtTRGPolarity |
uint16_t |
ETR 信号触发方式
|
ExtTRGFilter |
uint16_t |
ETR 信号的数字滤波器
|
TIM_PrescalerConfig(TIM_TypeDef* TIMx, uint16_t Prescaler, uint16_t TIM_PSCReloadMode)
:配置预分频器
参数 |
类型 |
描述 |
TIMx |
TIM_TypeDef* |
指向TIM外设的指针,TIMx(x:1~8) |
Prescaler |
uint16_t |
预分频值 |
TIM_PSCReloadMode |
uint16_t |
生效模式
|
TIM_CounterModeConfig(TIM_TypeDef* TIMx, uint16_t TIM_CounterMode)
:配置计数模式
参数 |
类型 |
描述 |
TIMx |
TIM_TypeDef* |
指向TIM外设的指针,TIMx(x:1~8) |
TIM_CounterMode |
uint16_t |
新的计数模式 |
TIM_ARRPreloadConfig(TIM_TypeDef* TIMx, FunctionalState NewState)
:启用或禁用自动重载寄存器
参数 |
类型 |
描述 |
TIMx |
TIM_TypeDef* |
指向TIM外设的指针,TIMx(x:1~8) |
NewState |
FunctionalState |
|
TIM_SetCounter(TIM_TypeDef* TIMx, uint16_t Counter)
:给计数器写入一个值
参数 |
类型 |
描述 |
TIMx |
TIM_TypeDef* |
指向TIM外设的指针,TIMx(x:1~8) |
Counter |
uint16_t |
数值 |
TIM_SetAutoreload(TIM_TypeDef* TIMx, uint16_t Autoreload)
:设置指定定时器的自动重载值
参数 |
类型 |
描述 |
TIMx |
TIM_TypeDef* |
指向TIM外设的指针,TIMx(x:1~8) |
Autoreload |
uint16_t |
新的自动重载值 |
uint16_t TIM_GetCounter(TIM_TypeDef* TIMx)
:获取当前计数器的值
参数 |
类型 |
描述 |
TIMx |
TIM_TypeDef* |
指向TIM外设的指针,TIMx(x:1~8) |
uint16_t TIM_GetPrescaler(TIM_TypeDef* TIMx)
:获取当前预分频器的值
参数 |
类型 |
描述 |
TIMx |
TIM_TypeDef* |
指向TIM外设的指针,TIMx(x:1~8) |
FlagStatus TIM_GetFlagStatus(TIM_TypeDef* TIMx, uint16_t TIM_FLAG)
:检查定时器标志位状态
返回值:RESET
:没有被置位,SET
:被置位
参数 |
类型 |
描述 |
TIMx |
TIM_TypeDef* |
指向TIM外设的指针,TIMx(x:1~8) |
TIM_FLAG |
uint16_t |
检查的具体标志 |
TIM_ClearFlag(TIM_TypeDef* TIMx, uint16_t TIM_FLAG)
:清除定时器标志位
参数 |
类型 |
描述 |
TIMx |
TIM_TypeDef* |
指向TIM外设的指针,TIMx(x:1~8) |
TIM_FLAG |
uint16_t |
清除的具体标志 |
ITStatus TIM_GetITStatus(TIM_TypeDef* TIMx, uint16_t TIM_IT)
:检查定时器中断标志状态
返回值:RESET
:没有被置位,SET
:被置位
参数 |
类型 |
描述 |
TIMx |
TIM_TypeDef* |
指向TIM外设的指针,TIMx(x:1~8) |
TIM_IT |
uint16_t |
检查的具体中断类型 |
TIM_ClearITPendingBit(TIM_TypeDef* TIMx, uint16_t TIM_IT)
:清除定时器中断标志位
参数 |
类型 |
描述 |
TIMx |
TIM_TypeDef* |
指向TIM外设的指针,TIMx(x:1~8) |
TIM_IT |
uint16_t |
清除的具体中断类型 |
TIM_OCxInit(TIM_TypeDef* TIMx, TIM_OCInitTypeDef* TIM_OCInitStruct)
:x:1~4,用于初始化输出比较通道 1~4
参数 |
类型 |
描述 |
TIMx |
TIM_TypeDef* |
指向TIM外设的指针,TIMx(x:1~8) |
TIM_OCInitStruct |
TIM_OCInitTypeDef* |
指向TIM_OCInitTypeDef结构体的指针 |
TIM_OCStructInit(TIM_OCInitTypeDef* TIM_OCInitStruct)
:将 TIM_OCInitTypeDef 结构体成员初始化为默认值
参数 |
类型 |
描述 |
TIM_OCInitStruct |
TIM_OCInitTypeDef* |
指向TIM_OCInitTypeDef结构体的指针 |
TIM_ForcedOCxConfig(TIM_TypeDef* TIMx, uint16_t TIM_ForcedAction)
:x:1~4,暂停输出波形,强制输出高或低电平
参数 |
类型 |
描述 |
TIMx |
TIM_TypeDef* |
指向TIM外设的指针,TIMx(x:1~8) |
TIM_ForcedAction |
uint16_t |
强制输出类型 |
TIM_OCxPreloadConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCPreload)
:x:1~4,配置输出比较通道 1~4 预装载功能
参数 |
类型 |
描述 |
TIMx |
TIM_TypeDef* |
指向TIM外设的指针,TIMx(x:1~8) |
TIM_OCPreload |
uint16_t |
TIM_OCPreload_Disable:禁用 |
TIM_OCxPolarityConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCPolarity)
:x:1~4,设置定时器通道1~4 输出比较极性
参数 |
类型 |
描述 |
TIMx |
TIM_TypeDef* |
指向TIM外设的指针,TIMx(x:1~8) |
TIM_OCPolarity |
uint16_t |
TIM_OCPolarity_High:检测高电平 |
TIM_OCxNPolarityConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCNPolarity)
: 定时器互补输出通道极性
参数 |
类型 |
描述 |
TIMx |
TIM_TypeDef* |
指向TIM外设的指针,TIMx(x:1~8) |
TIM_OCNPolarity |
uint16_t |
互补通道极性 TIM_OCNPolarity_High:互补通道高电平有效 TIM_OCNPolarity_Low:互补通道低电平有效 |
TIM_CCxCmd(TIM_TypeDef* TIMx, uint16_t TIM_Channel, uint16_t TIM_CCx)
:启用或禁用定时器捕获/比较通道
参数 |
类型 |
描述 |
TIMx |
TIM_TypeDef* |
指向TIM外设的指针,TIMx(x:1~8) |
TIM_Channel |
uint16_t |
通道 TIM_Channel_1:通道 1 TIM_Channel_2:通道 2 TIM_Channel_3:通道 3 TIM_Channel_4:通道 4 |
TIM_CCx |
uint16_t |
ENABLE:启用 DISABLE:禁用 |
TIM_CCxNCmd(TIM_TypeDef* TIMx, uint16_t TIM_Channel, uint16_t TIM_CCxN)
:高级定时器互补通道使能状态
参数 |
类型 |
描述 |
TIMx |
TIM_TypeDef* |
指向TIM外设的指针,TIMx(x:1~8) |
TIM_Channel |
uint16_t |
互补通道 TIM_Channel_1:对应互补通道 CH1N TIM_Channel_2:对应互补通道 CH2N TIM_Channel_3:对应互补通道 CH3N |
TIM_CCxN |
uint16_t |
ENABLE:启用 DISABLE:禁用 |
TIM_SelectOCxM(TIM_TypeDef* TIMx, uint16_t TIM_Channel, uint16_t TIM_OCMode)
:定时器输出比较通道工作模式
参数 |
类型 |
描述 |
TIMx |
TIM_TypeDef* |
指向TIM外设的指针,TIMx(x:1~8) |
TIM_Channel |
uint16_t |
通道 TIM_Channel_1:通道 1 TIM_Channel_2:通道 2 TIM_Channel_3:通道 3 TIM_Channel_4:通道 4 |
TIM_OCMode |
uint16_t |
输出比较模式 TIM_OCMode_Timing:定时模式 TIM_OCMode_Active:相等时强制输出高电平 TIM_OCMode_Inactive:相等时强制输出低电平 TIM_OCMode_Toggle:相等时翻转输出电平 TIM_OCMode_PWM1:PWM 模式 1 TIM_OCMode_PWM2:PWM 模式 2 |
TIM_CtrlPWMOutputs(TIM_TypeDef* TIMx, FunctionalState NewState)
:高级定时器所有 PWM 主输出通道(包括互补通道)的总使能
参数 |
类型 |
描述 |
TIMx |
TIM_TypeDef* |
指向TIM外设的指针,TIMx(x:1、8) |
NewState |
FunctionalState |
ENABLE:启用 DISABLE:禁用 |
TIM_SetComparex(TIM_TypeDef* TIMx, uint16_t Comparex)
:x:1~4,设置通道 1~4 捕获寄存器 RCC 比较值
参数 |
类型 |
描述 |
TIMx |
TIM_TypeDef* |
指向TIM外设的指针,TIMx(x:1~8) |
Comparex |
uint16_t |
比较值(0x0000 ~ 0xFFFF) |
定时器中断 服务函数
在 startup_stm32f10x_hd.s 里面
中断触发函数 |
TIM1_BRK_IRQHandler |
TIM1_UP_IRQHandler |
TIM1_TRG_COM_IRQHandler |
TIM1_CC_IRQHandler |
TIMx_IRQHandler(x:2~7) |
TIM8_BRK_IRQHandler |
TIM8_UP_IRQHandler |
TIM8_TRG_COM_IRQHandler |
TIM8_CC_IRQHandler |