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

UE5 学习系列(二)用户操作界面及介绍

这篇博客是 UE5 学习系列博客的第二篇&#xff0c;在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下&#xff1a; 【Note】&#xff1a;如果你已经完成安装等操作&#xff0c;可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作&#xff0c;重…...

接口测试中缓存处理策略

在接口测试中&#xff0c;缓存处理策略是一个关键环节&#xff0c;直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性&#xff0c;避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明&#xff1a; 一、缓存处理的核…...

深入剖析AI大模型:大模型时代的 Prompt 工程全解析

今天聊的内容&#xff0c;我认为是AI开发里面非常重要的内容。它在AI开发里无处不在&#xff0c;当你对 AI 助手说 "用李白的风格写一首关于人工智能的诗"&#xff0c;或者让翻译模型 "将这段合同翻译成商务日语" 时&#xff0c;输入的这句话就是 Prompt。…...

k8s从入门到放弃之Ingress七层负载

k8s从入门到放弃之Ingress七层负载 在Kubernetes&#xff08;简称K8s&#xff09;中&#xff0c;Ingress是一个API对象&#xff0c;它允许你定义如何从集群外部访问集群内部的服务。Ingress可以提供负载均衡、SSL终结和基于名称的虚拟主机等功能。通过Ingress&#xff0c;你可…...

基于ASP.NET+ SQL Server实现(Web)医院信息管理系统

医院信息管理系统 1. 课程设计内容 在 visual studio 2017 平台上&#xff0c;开发一个“医院信息管理系统”Web 程序。 2. 课程设计目的 综合运用 c#.net 知识&#xff0c;在 vs 2017 平台上&#xff0c;进行 ASP.NET 应用程序和简易网站的开发&#xff1b;初步熟悉开发一…...

2024年赣州旅游投资集团社会招聘笔试真

2024年赣州旅游投资集团社会招聘笔试真 题 ( 满 分 1 0 0 分 时 间 1 2 0 分 钟 ) 一、单选题(每题只有一个正确答案,答错、不答或多答均不得分) 1.纪要的特点不包括()。 A.概括重点 B.指导传达 C. 客观纪实 D.有言必录 【答案】: D 2.1864年,()预言了电磁波的存在,并指出…...

linux arm系统烧录

1、打开瑞芯微程序 2、按住linux arm 的 recover按键 插入电源 3、当瑞芯微检测到有设备 4、松开recover按键 5、选择升级固件 6、点击固件选择本地刷机的linux arm 镜像 7、点击升级 &#xff08;忘了有没有这步了 估计有&#xff09; 刷机程序 和 镜像 就不提供了。要刷的时…...

论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(一)

宇树机器人多姿态起立控制强化学习框架论文解析 论文解读&#xff1a;交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架&#xff08;一&#xff09; 论文解读&#xff1a;交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化…...

Rust 异步编程

Rust 异步编程 引言 Rust 是一种系统编程语言,以其高性能、安全性以及零成本抽象而著称。在多核处理器成为主流的今天,异步编程成为了一种提高应用性能、优化资源利用的有效手段。本文将深入探讨 Rust 异步编程的核心概念、常用库以及最佳实践。 异步编程基础 什么是异步…...

CMake 从 GitHub 下载第三方库并使用

有时我们希望直接使用 GitHub 上的开源库,而不想手动下载、编译和安装。 可以利用 CMake 提供的 FetchContent 模块来实现自动下载、构建和链接第三方库。 FetchContent 命令官方文档✅ 示例代码 我们将以 fmt 这个流行的格式化库为例,演示如何: 使用 FetchContent 从 GitH…...