当前位置: 首页 > news >正文

STM32F10XXX标准库函数及外设结构体

时钟

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

选择要操作的中断类型

  • TIM_IT_Update:定时器溢出(更新)中断
  • TIM_IT_CC1/TIM_IT_CC2/TIM_IT_CC3/TIM_IT_CC4:通道1~4的捕获/比较中断
  • TIM_IT_Trigger:触发事件中断(用于主从定时器同步)
  • TIM_IT_Break:刹车中断(仅高级定时器如 TIM1/TIM8 支持)

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

输入捕获的极性

  • TIM_ICPolarity_Rising : 上升沿有效
  • TIM_ICPolarity_Falling : 下降沿有效
  • TIM_ICPolarity_BothEdge: 双沿有效(仅部分模式支持)

ICFilter

uint16_t

输入信号的数字滤波器

0x00xF(对应滤波采样频率和采样次数)

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_ExtTRGPSC_OFF : 无分频
  • TIM_ExtTRGPSC_DIV2 : 2 分频
  • TIM_ExtTRGPSC_DIV4 : 4 分频
  • TIM_ExtTRGPSC_DIV8 : 8 分频

TIM_ExtTRGPolarity

uint16_t

ETR 信号触发方式

  • TIM_ExtTRGPolarity_Inverted : 低电平或下降沿触发
  • TIM_ExtTRGPolarity_NonInverted : 高电平或上升沿触发

ExtTRGFilter

uint16_t

ETR 信号的数字滤波器

0x00xF(对应滤波采样频率和采样次数)

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_ExtTRGPSC_OFF : 无分频
  • TIM_ExtTRGPSC_DIV2 : 2 分频
  • TIM_ExtTRGPSC_DIV4 : 4 分频
  • TIM_ExtTRGPSC_DIV8 : 8 分频

TIM_ExtTRGPolarity

uint16_t

ETR 信号触发方式

  • TIM_ExtTRGPolarity_Inverted : 低电平或下降沿触发
  • TIM_ExtTRGPolarity_NonInverted : 高电平或上升沿触发

ExtTRGFilter

uint16_t

ETR 信号的数字滤波器

0x00xF(对应滤波采样频率和采样次数)

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_ExtTRGPSC_OFF : 无分频
  • TIM_ExtTRGPSC_DIV2 : 2 分频
  • TIM_ExtTRGPSC_DIV4 : 4 分频
  • TIM_ExtTRGPSC_DIV8 : 8 分频

TIM_ExtTRGPolarity

uint16_t

ETR 信号触发方式

  • TIM_ICPolarity_Rising : 上升沿有效
  • TIM_ICPolarity_Falling : 下降沿有效
  • TIM_ICPolarity_BothEdge: 双沿有效(仅部分模式支持)

ExtTRGFilter

uint16_t

ETR 信号的数字滤波器

0x00xF(对应滤波采样频率和采样次数)

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_PSCReloadMode_Immediate(立即生效)
  • TIM_PSCReloadMode_Update(同步更新)

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

ENABLE使能,ISABLE:失能

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_Enable:启用

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_OCPolarity_Low:检测低电平

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

相关文章:

STM32F10XXX标准库函数及外设结构体

时钟 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_APB1Peri…...

计算机毕业设计SpringBoot+Vue.js车辆管理系统(源码+文档+PPT+讲解)

温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 作者简介:Java领…...

剖析Manus:AI领域的创新先锋还是虚假泡沫?

在AI技术迅猛发展的当下,新的智能体不断涌现,其中Manus的出现可谓是一石激起千层浪。近期,OpenManus以极快速度复刻Manus,引发了广泛关注,但这也让我们更有必要深入剖析Manus,探究它究竟是货真价实的创新突…...

编程考古-Borland历史:《.EXE Interview》对Anders Hejlsberg关于Delphi的采访内容(中)

为了纪念Delphi在2002年2月14日发布的25周年(2020.2.12),这里有一段由.EXE杂志编辑Will Watts于1995年对Delphi首席架构师Anders Hejlsberg进行的采访记录。在这次采访中,Anders讨论了Delphi的设计与发展,以及即将到来的针对Windows 95的32位版本。 Q. 编译器引擎本身是用…...

GB28181视频平台LiveGBS在设置公网IP收流时,如何自定义修改收流端口区间

LiveGBS GB28181流媒体服务在接收视频的时候默认是使用30000-30249, webrtc流播放端口区间默认是UDP的30250-30500区间。有些网络环境不方便开放这么大的端口区间,下面介绍下如何修改配置这个区间。 从页面上修改这个区间,端口区间尽量设置大…...

【ubuntu20】--- 搭建 gerrit 最新最详细

在编程的艺术世界里,代码和灵感需要寻找到最佳的交融点,才能打造出令人为之惊叹的作品。而在这座秋知叶i博客的殿堂里,我们将共同追寻这种完美结合,为未来的世界留下属于我们的独特印记。 【ubuntu20】--- 搭建 gerrit 最新最详细…...

HCIA-DHCP

1、定义:DHCP即动态主机配置协议,通过C/S模型架构,无需主机配置IP地址,自动分配网络配置参数的网络协议。 2、作用 对比项目无 DHCP有 DHCP配置难度配置多,容易出错自动为客户端分配 IP 地址及其他网络配置参数&…...

wxWidgets GUI 跨平台 入门学习笔记

准备 参考 https://wiki.wxwidgets.org/Microsoft_Visual_C_NuGethttps://wiki.wxwidgets.org/Tools#Rapid_Application_Development_.2F_GUI_Buildershttps://docs.wxwidgets.org/3.2/https://docs.wxwidgets.org/latest/overview_helloworld.htmlhttps://wizardforcel.gitb…...

OmniParser技术分析(一)

1.引言 通过上篇文章介绍 OmniParser:下一代纯视觉UI自动化测试先驱相信大家已经对OmniParser有初步了解,接下来详细介绍下OmniParser使用了哪些技术模型实现了对UI纯视觉的检测和理解。 2.整体方案 通过阅读OmniParser提供的运行Demo代码知道,其实整…...

什么是hive

Apache Hive 是一个基于 Hadoop 生态系统构建的数据仓库工具,主要用于处理和分析大规模的结构化数据。它允许用户通过类似 SQL 的查询语言(HiveQL)进行数据操作,而无需直接编写复杂的 MapReduce 程序。以下是 Hive 的核心特点和应…...

PyTorch系列教程:Tensor.view() 方法详解

这篇简明扼要的文章是关于PyTorch中的tensor.view()方法的介绍与应用,与reshape()方法的区别,同时给出示例进行详细解释。 Tensor基础 Tensor(张量)的视图是一个新的Tensor,它与原始Tensor共享相同的底层数据,但具有不同的形状或…...

从零开始了解Manus(文末附教程)

大家好,我是樱木。 《从零开始了解Manus》,这个教程对于想了解 Manus的同学,全部都在里面了! Manus 是一款能像真人一样帮你干活的AI助手,运行在云端,不占电脑内存。 它可以自动完成复杂任务&#xff0c…...

不同开发语言之for循环的用法、区别总结

一、Objective-C &#xff08;1&#xff09;标准的c风格 for (int i 0; i < 5; i) {NSLog("i %d", i); } &#xff08;2&#xff09;for in循环。 NSArray *array ["apple", "banana", "orange"]; for (NSString *fruit in …...

CentOS 7 aarch64上制作kernel rpm二进制包 —— 筑梦之路

环境说明 centos 7 aarch64 gcc 8.3.1 kernel 5.4.290 准备编译制作 # 安装必要的工具和包yum install rpm-devel rpmdevtools yum groupinstall "Development Tools"yum install ncurses-devel bc elfutils-libelf-devel openssl-devel # 安装gcc 8.3.1# 修改…...

Cursor 使用经验,一个需求开发全流程

软件开发中 Cursor 的使用经验成为关注焦点&#xff0c;尤其是处理大型数据集的需求。用户提到“Cursor 使用经验&#xff0c;一个需求开发全流程”&#xff0c;但“Cursor”可能指数据库游标&#xff0c;涉及逐行处理数据。本文将详细探讨开发一个需求的完整流程&#xff0c;包…...

2025-03-08 学习记录--C/C++-PTA 习题9-2 计算两个复数之积

合抱之木&#xff0c;生于毫末&#xff1b;九层之台&#xff0c;起于累土&#xff1b;千里之行&#xff0c;始于足下。&#x1f4aa;&#x1f3fb; 一、题目描述 ⭐️ 二、代码&#xff08;C语言&#xff09;⭐️ #include <stdio.h>struct complex{int real;int imag; …...

DeepSeek-R1本地化部署(Mac)

一、下载 Ollama 本地化部署需要用到 Ollama&#xff0c;它能支持很多大模型。官方网站&#xff1a;https://ollama.com/ 点击 Download 即可&#xff0c;支持macOS,Linux 和 Windows&#xff1b;我下载的是 mac 版本&#xff0c;要求macOS 11 Big Sur or later&#xff0c;Ol…...

【时时三省】(C语言基础)赋值语句

山不在高,有仙则名。水不在深,有龙则灵。 ----CSDN 时时三省 赋值语句 在C程序中,最常用的语句是:赋值语句和输入输出语句。其中最基本的是赋值语句程序中的计算功能大部分是由赋值语句实现的,几乎每一个有实用价值的程序都包括赋值语句。有的程序中的大部分语句都是赋值…...

如何提取图片文字

如何分析图片风格&#xff1a; 分析下图片是什么风格&#xff0c;用即梦AI的提示语描述。我要使用描述语去即梦生成同样的图...

3.3.2 用仿真图实现点灯效果

文章目录 文章介绍Keil生成.hex代码Proteus仿真图中导入.hex代码文件开始仿真 文章介绍 点灯之前需要准备好仿真图keil代码 仿真图参考前文&#xff1a;3.3.2 Proteus第一个仿真图 keil安装参考前文&#xff1a;3.1.2 Keil4安装教程 keil新建第一个项目参考前文&#xff1a;3.1…...

Python爬虫实战:研究feedparser库相关技术

1. 引言 1.1 研究背景与意义 在当今信息爆炸的时代,互联网上存在着海量的信息资源。RSS(Really Simple Syndication)作为一种标准化的信息聚合技术,被广泛用于网站内容的发布和订阅。通过 RSS,用户可以方便地获取网站更新的内容,而无需频繁访问各个网站。 然而,互联网…...

条件运算符

C中的三目运算符&#xff08;也称条件运算符&#xff0c;英文&#xff1a;ternary operator&#xff09;是一种简洁的条件选择语句&#xff0c;语法如下&#xff1a; 条件表达式 ? 表达式1 : 表达式2• 如果“条件表达式”为true&#xff0c;则整个表达式的结果为“表达式1”…...

【碎碎念】宝可梦 Mesh GO : 基于MESH网络的口袋妖怪 宝可梦GO游戏自组网系统

目录 游戏说明《宝可梦 Mesh GO》 —— 局域宝可梦探索Pokmon GO 类游戏核心理念应用场景Mesh 特性 宝可梦玩法融合设计游戏构想要素1. 地图探索&#xff08;基于物理空间 广播范围&#xff09;2. 野生宝可梦生成与广播3. 对战系统4. 道具与通信5. 延伸玩法 安全性设计 技术选…...

Maven 概述、安装、配置、仓库、私服详解

目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...

智能AI电话机器人系统的识别能力现状与发展水平

一、引言 随着人工智能技术的飞速发展&#xff0c;AI电话机器人系统已经从简单的自动应答工具演变为具备复杂交互能力的智能助手。这类系统结合了语音识别、自然语言处理、情感计算和机器学习等多项前沿技术&#xff0c;在客户服务、营销推广、信息查询等领域发挥着越来越重要…...

上位机开发过程中的设计模式体会(1):工厂方法模式、单例模式和生成器模式

简介 在我的 QT/C 开发工作中&#xff0c;合理运用设计模式极大地提高了代码的可维护性和可扩展性。本文将分享我在实际项目中应用的三种创造型模式&#xff1a;工厂方法模式、单例模式和生成器模式。 1. 工厂模式 (Factory Pattern) 应用场景 在我的 QT 项目中曾经有一个需…...

Sklearn 机器学习 缺失值处理 获取填充失值的统计值

💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖 本博客的精华专栏: 【自动化测试】 【测试经验】 【人工智能】 【Python】 使用 Scikit-learn 处理缺失值并提取填充统计信息的完整指南 在机器学习项目中,数据清…...

JDK 17 序列化是怎么回事

如何序列化&#xff1f;其实很简单&#xff0c;就是根据每个类型&#xff0c;用工厂类调用。逐个完成。 没什么漂亮的代码&#xff0c;只有有效、稳定的代码。 代码中调用toJson toJson 代码 mapper.writeValueAsString ObjectMapper DefaultSerializerProvider 一堆实…...

qt+vs Generated File下的moc_和ui_文件丢失导致 error LNK2001

qt 5.9.7 vs2013 qt add-in 2.3.2 起因是添加一个新的控件类&#xff0c;直接把源文件拖进VS的项目里&#xff0c;然后VS卡住十秒&#xff0c;然后编译就报一堆 error LNK2001 一看项目的Generated Files下的moc_和ui_文件丢失了一部分&#xff0c;导致编译的时候找不到了。因…...

【QT控件】显示类控件

目录 一、Label 二、LCD Number 三、ProgressBar 四、Calendar Widget QT专栏&#xff1a;QT_uyeonashi的博客-CSDN博客 一、Label QLabel 可以用来显示文本和图片. 核心属性如下 代码示例: 显示不同格式的文本 1) 在界面上创建三个 QLabel 尺寸放大一些. objectName 分别…...