完整教程:STM32F103学习笔记-16-RCC(第5节)-STM32 标准外设库函数命名规则总览(以stm32f10x_rcc.c/h为例)

一、函数命名结构规律

STM32 标准外设库(Standard Peripheral Library,简称 SPL)采用统一命名规则。函数名通常由三部分组成:

<模块名>_<功能对象><操作行为>(参数)

或更详细:

<外设缩写>_<功能块><动作><附加说明>

示例:

  • RCC_HSEConfig():配置 RCC 模块的外部高速晶振(HSE)。

  • GPIO_Init():初始化 GPIO 外设。

  • USART_SendData():发送串口数据。

二、常见函数命名后缀及分类

1. Config 类函数:配置寄存器、模式或参数

后缀英文含义示例功能说明
ConfigConfigureRCC_HSEConfig()配置外设参数或模式
ClockConfigClock ConfigureRCC_HCLKConfig()配置总线时钟分频
PLLConfigPLL ConfigureRCC_PLLConfig()设置 PLL 输入源与倍频系数
MCOConfigMCO ConfigureRCC_MCOConfig()选择系统时钟输出到 PA8
PinConfigPin ConfigureGPIO_PinRemapConfig()引脚重映射配置
ITConfigInterrupt ConfigureUSART_ITConfig()中断源开关配置

特点:Config 类函数负责寄存器设置,不负责启动外设。

2. Cmd 类函数:启用或禁止命令类

后缀英文含义示例功能说明
CmdCommandRCC_PLLCmd(ENABLE)启用或关闭 PLL
ClockCmdClock CommandRCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE)控制外设时钟开关
ResetCmdReset CommandRCC_APB2PeriphResetCmd(RCC_APB2Periph_USART1, ENABLE)复位外设
PrefetchBufferCmdPrefetch Buffer CommandFLASH_PrefetchBufferCmd(ENABLE)使能 Flash 预取缓冲

特点:带 Cmd 的函数通常和 ENABLE / DISABLE 参数一起使用,用于控制功能开关。

3. Init / DeInit 类函数:初始化与复位

后缀英文含义示例功能说明
InitInitializeGPIO_Init()USART_Init()根据结构体参数配置外设
DeInitDe-initializeRCC_DeInit()恢复寄存器默认状态
StructInitStructure InitializeGPIO_StructInit()填充结构体默认值

特点:
StructInit() 用于给结构体赋默认值。
Init() 用于写入配置到寄存器。
DeInit() 用于恢复默认配置。

4. Get / Set 类函数:状态读写与寄存器操作

后缀英文含义示例功能说明
GetFlagStatusGet Flag StatusRCC_GetFlagStatus(RCC_FLAG_PLLRDY)获取 PLL 锁定状态
GetITStatusGet Interrupt StatusUSART_GetITStatus()获取中断标志位
SetCompareSet CompareTIM_SetCompare1(TIM2, 1000)设置定时器比较值
GetCounterGet CounterTIM_GetCounter()获取定时器当前值
SetClockSourceSet Clock SourceRCC_SetClockSource()设置时钟源

特点:
Get 用于读取状态。
Set 用于软件写入或更新寄存器值。

5. Wait / Ready 类函数:等待状态类

后缀示例功能说明
WaitForHSEStartUpRCC_WaitForHSEStartUp()等待外部晶振稳定
WaitForLastOperationFLASH_WaitForLastOperation()等待 Flash 操作完成
IsReady / IsActiveFlagRCC_IsReadyFlag()检查外设是否就绪

特点:内部循环检测硬件标志位变化,用于状态等待。

6. Clear / Reset 类函数:清除标志类

后缀示例功能说明
ClearFlagRCC_ClearFlag()清除复位标志位
ClearITPendingBitUSART_ClearITPendingBit()清除中断挂起标志
ResetCmdRCC_APB2PeriphResetCmd()对外设执行硬件复位

7. Enable / Disable 类函数:简写控制类

示例功能说明
NVIC_EnableIRQ(USART1_IRQn)使能中断通道
NVIC_DisableIRQ(USART1_IRQn)禁止中断通道

特点:主要出现在 NVIC、SysTick、EXTI 等内核相关模块。

8. Misc / 其他常见特殊功能类

示例功能说明
FLASH_SetLatency(FLASH_Latency_2)设置 Flash 等待周期
RCC_ClockSecuritySystemCmd(ENABLE)启用时钟安全系统
ADC_SoftwareStartConvCmd(ADC1, ENABLE)软件触发 ADC 转换
USART_SendData(USART1, Data)向发送寄存器写入数据
USART_ReceiveData(USART1)读取接收寄存器内容

三、命名规律口诀

模块在前,动作在后;
Config 配置,Cmd 开关;
Init 初始化,DeInit 复原;
Get 取值,Set 赋值;
Clear 清标志,Wait 等状态。

四、实例说明(RCC 模块)

步骤函数含义
1RCC_DeInit()复位 RCC 寄存器
2RCC_HSEConfig(RCC_HSE_ON)启用外部高速晶振
3RCC_WaitForHSEStartUp()等待 HSE 稳定
4FLASH_SetLatency(FLASH_Latency_2)设置 Flash 等待周期
5RCC_HCLKConfig(RCC_SYSCLK_Div1)设置 AHB 分频
6RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9)配置 PLL 倍频
7RCC_PLLCmd(ENABLE)使能 PLL
8RCC_GetFlagStatus(RCC_FLAG_PLLRDY)检查 PLL 是否锁定
9RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK)切换系统时钟到 PLL
10RCC_MCOConfig(RCC_MCO_SYSCLK)输出系统时钟到 PA8

五、命名模式速查表

类别命名模式示例功能说明
配置类<模块>_<对象>Config()RCC_PLLConfig()配置寄存器参数
启停类<模块>_<功能>Cmd()RCC_PLLCmd()控制启停
初始化类<模块>_Init()GPIO_Init()外设初始化
清除类<模块>_ClearFlag()USART_ClearFlag()清除标志位
状态类<模块>_GetFlagStatus()RCC_GetFlagStatus()获取状态
等待类<模块>_WaitForXxx()RCC_WaitForHSEStartUp()等待状态就绪
复位类<模块>_DeInit()USART_DeInit()恢复默认配置
中断类<模块>_ITConfig()EXTI_ITConfig()控制中断开关
获取类<模块>_GetXxx()TIM_GetCounter()获取寄存器值
设置类<模块>_SetXxx()TIM_SetCompare1()写入寄存器值

六、命名逻辑总结

STM32 标准外设库的命名规律高度统一:

  • 模块前缀:表示所属外设(RCC / GPIO / TIM / USART / ADC 等)

  • 功能对象:表示模块内的子功能(如 PLL / HSE / Flag / Clock 等)

  • 操作动词:表示操作类别(Config / Cmd / Init / Get / Set / Clear 等)

posted @ 2025-12-09 13:50  clnchanpin  阅读(1)  评论(0)    收藏  举报