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

云端存储本地化革新:从0到1掌握s3fs-fuse文件系统映射技术

云端存储本地化革新&#xff1a;从0到1掌握s3fs-fuse文件系统映射技术 【免费下载链接】s3fs-fuse FUSE-based file system backed by Amazon S3 项目地址: https://gitcode.com/gh_mirrors/s3/s3fs-fuse 在云计算时代&#xff0c;如何让云端存储像本地硬盘一样便捷访问…...

各工厂产能负荷不透明?SAP 集团生产模块实现服装多工厂协同生产

在服装企业规模化扩张过程中&#xff0c;多工厂布局成为提升产能、覆盖市场的重要选择&#xff0c;但 “各工厂产能负荷不透明” 却成为制约协同效率的关键瓶颈。很多服装集团面临这样的困境&#xff1a;总部不清楚 A 工厂的高端定制生产线是否饱和&#xff0c;B 工厂的批量生产…...

手把手教你用树莓派+USRP B210搭建一个低成本SDR开发环境(含完整配置流程)

树莓派USRP B210&#xff1a;低成本SDR开发环境搭建全指南 从零开始的SDR硬件选型 在软件定义无线电(SDR)的世界里&#xff0c;设备价格往往成为初学者最大的门槛。专业级设备动辄上万元&#xff0c;而真正适合学习开发的USRP B210配合树莓派的组合&#xff0c;却能以不到五千元…...

nomic-embed-text-v2-moe部署教程:Nginx反向代理+HTTPS配置保障生产环境安全

nomic-embed-text-v2-moe部署教程&#xff1a;Nginx反向代理HTTPS配置保障生产环境安全 1. 开篇&#xff1a;为什么你的AI模型需要一个“门卫”&#xff1f; 想象一下&#xff0c;你刚把一台功能强大的AI服务器部署在公司内网&#xff0c;准备用它来处理各种文本分析任务。结…...

从海报生成实战出发:深度解析Canvas文本绘制的那些“坑”与高效解决方案

从海报生成实战出发&#xff1a;深度解析Canvas文本绘制的那些“坑”与高效解决方案 在数字化营销盛行的今天&#xff0c;一张精美的海报往往能成为内容传播的"门面担当"。无论是文章分享、活动推广还是品牌展示&#xff0c;视觉化呈现的效果直接影响用户点击意愿。…...

Kali桥接模式实战:从静态IP到动态DHCP的完整网络配置指南

1. 为什么需要桥接模式&#xff1f; 很多刚接触Kali Linux的朋友都会有这样的疑问&#xff1a;为什么虚拟机要配置桥接模式&#xff1f;简单来说&#xff0c;桥接模式让虚拟机就像一台真实存在的物理设备一样接入网络。想象一下你家里新买了一台电脑&#xff0c;插上网线就能直…...

Symfony Doctrine Bridge 编译器传递深度解析:RegisterMappingsPass 与 RegisterUidTypePass 源码解读

Symfony Doctrine Bridge 编译器传递深度解析&#xff1a;RegisterMappingsPass 与 RegisterUidTypePass 源码解读 【免费下载链接】doctrine-bridge Provides integration for Doctrine with various Symfony components 项目地址: https://gitcode.com/gh_mirrors/do/doctr…...

【Zynq 进阶三】榨干带宽!深度解析 Linux 下 AXI DMA 高速数据搬运与 Cache 一致性实战

【Zynq 进阶三】榨干带宽&#xff01;深度解析 Linux 下 AXI DMA 高速数据搬运与 Cache 一致性实战 文章目录【Zynq 进阶三】榨干带宽&#xff01;深度解析 Linux 下 AXI DMA 高速数据搬运与 Cache 一致性实战&#x1f4dd; 前言&#xff1a;为什么 UIO 搞不定海量数据&#xf…...

丹青识画系统C语言文件读写操作:本地图像批处理脚本

丹青识画系统C语言文件读写操作&#xff1a;本地图像批处理脚本 1. 引言 如果你是一个C语言开发者&#xff0c;手头有一堆图片需要分析&#xff0c;比如给它们打标签、识别内容&#xff0c;但你的工作环境是内网或者对网络有严格限制&#xff0c;没法直接调用在线的AI服务&am…...

如何在KubeOperator中选择最佳存储方案:NFS、Ceph RBD和Local Volume完全指南

如何在KubeOperator中选择最佳存储方案&#xff1a;NFS、Ceph RBD和Local Volume完全指南 【免费下载链接】KubeOperator KubeOperator 是一个开源的轻量级 Kubernetes 发行版&#xff0c;专注于帮助企业规划、部署和运营生产级别的 K8s 集群。 项目地址: https://gitcode.co…...