当前位置: 首页 > 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…...

React Native 导航系统实战(React Navigation)

导航系统实战&#xff08;React Navigation&#xff09; React Navigation 是 React Native 应用中最常用的导航库之一&#xff0c;它提供了多种导航模式&#xff0c;如堆栈导航&#xff08;Stack Navigator&#xff09;、标签导航&#xff08;Tab Navigator&#xff09;和抽屉…...

linux 下常用变更-8

1、删除普通用户 查询用户初始UID和GIDls -l /home/ ###家目录中查看UID cat /etc/group ###此文件查看GID删除用户1.编辑文件 /etc/passwd 找到对应的行&#xff0c;YW343:x:0:0::/home/YW343:/bin/bash 2.将标红的位置修改为用户对应初始UID和GID&#xff1a; YW3…...

零基础设计模式——行为型模式 - 责任链模式

第四部分&#xff1a;行为型模式 - 责任链模式 (Chain of Responsibility Pattern) 欢迎来到行为型模式的学习&#xff01;行为型模式关注对象之间的职责分配、算法封装和对象间的交互。我们将学习的第一个行为型模式是责任链模式。 核心思想&#xff1a;使多个对象都有机会处…...

多种风格导航菜单 HTML 实现(附源码)

下面我将为您展示 6 种不同风格的导航菜单实现&#xff0c;每种都包含完整 HTML、CSS 和 JavaScript 代码。 1. 简约水平导航栏 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport&qu…...

selenium学习实战【Python爬虫】

selenium学习实战【Python爬虫】 文章目录 selenium学习实战【Python爬虫】一、声明二、学习目标三、安装依赖3.1 安装selenium库3.2 安装浏览器驱动3.2.1 查看Edge版本3.2.2 驱动安装 四、代码讲解4.1 配置浏览器4.2 加载更多4.3 寻找内容4.4 完整代码 五、报告文件爬取5.1 提…...

管理学院权限管理系统开发总结

文章目录 &#x1f393; 管理学院权限管理系统开发总结 - 现代化Web应用实践之路&#x1f4dd; 项目概述&#x1f3d7;️ 技术架构设计后端技术栈前端技术栈 &#x1f4a1; 核心功能特性1. 用户管理模块2. 权限管理系统3. 统计报表功能4. 用户体验优化 &#x1f5c4;️ 数据库设…...

VM虚拟机网络配置(ubuntu24桥接模式):配置静态IP

编辑-虚拟网络编辑器-更改设置 选择桥接模式&#xff0c;然后找到相应的网卡&#xff08;可以查看自己本机的网络连接&#xff09; windows连接的网络点击查看属性 编辑虚拟机设置更改网络配置&#xff0c;选择刚才配置的桥接模式 静态ip设置&#xff1a; 我用的ubuntu24桌…...

无人机侦测与反制技术的进展与应用

国家电网无人机侦测与反制技术的进展与应用 引言 随着无人机&#xff08;无人驾驶飞行器&#xff0c;UAV&#xff09;技术的快速发展&#xff0c;其在商业、娱乐和军事领域的广泛应用带来了新的安全挑战。特别是对于关键基础设施如电力系统&#xff0c;无人机的“黑飞”&…...

解读《网络安全法》最新修订,把握网络安全新趋势

《网络安全法》自2017年施行以来&#xff0c;在维护网络空间安全方面发挥了重要作用。但随着网络环境的日益复杂&#xff0c;网络攻击、数据泄露等事件频发&#xff0c;现行法律已难以完全适应新的风险挑战。 2025年3月28日&#xff0c;国家网信办会同相关部门起草了《网络安全…...

【堆垛策略】设计方法

堆垛策略的设计是积木堆叠系统的核心&#xff0c;直接影响堆叠的稳定性、效率和容错能力。以下是分层次的堆垛策略设计方法&#xff0c;涵盖基础规则、优化算法和容错机制&#xff1a; 1. 基础堆垛规则 (1) 物理稳定性优先 重心原则&#xff1a; 大尺寸/重量积木在下&#xf…...