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

STM32F103学习笔记-16-RCC(第4节)-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 等)

http://www.dtcms.com/a/590163.html

相关文章:

  • 第7章 nestjs服务端开发:通用业务框架设计
  • 低价网站建设联系方式企业网站后端模板
  • 嵌入式Linux——“大扳手”与“小螺丝”:为什么不该用信号量(Semaphore)去模拟“完成量”(Completion)
  • 哪个网站教做ppt网站优化主要工作有那些内容
  • 都江堰做网站糖果网站建设目的
  • 网站怎么建设以及维护网站维护能自己做吗
  • 湖南网站建设制作陈锦良厦门建设局
  • 做网站有哪些好处现在建设网站落后了
  • 汉中专业网站建设价格梨树县交通建设网站
  • 代码随想录 Q85.摆动序列
  • ESP32连接ThingsCloud上传设备数据(智慧小灯)
  • 网站设计公司圣辉友联一级a做爰片免费网站性恔
  • 【基于one-loop-per-thread的高并发服务器】--- Server模块
  • 免费网站推广网站在线怎么做网页啊
  • 泰安手机网站建设做校园文化的网站
  • 自助建站网站程序源码dw做网站弊端
  • 新城区网站建设做网站.服务器怎么买
  • 【教学类-98-01】20251109“兔子头像”(小班主题《小兔乖乖》)
  • 上海电子门户网站建设数据怎么用editplus做网站
  • iBiz开源:iBizPLM BOM插件来了
  • 8.游戏逆向-pxxx-获取GObject
  • 建立网站 数据分析网站怎么做动效
  • 什么软件做网站链接安宁市建设厅网站
  • 4.1.8【2016统考真题】
  • 第三章:处理机调度与死锁
  • 德州做网站公司电话谷歌系平台推广
  • 【01】Canny边缘检测:原理、实现与性能对比
  • 41. CMake
  • 11.string(上)
  • 【开题答辩全过程】以 基于SpringBoot的智慧教育系统的设计与实现为例,包含答辩的问题和答案