STM32标准库
整理笔记时发现自己如果列举代码,会更加有效。但插入代码块到其中会比较繁琐,而且各个知识的代码的耦合性较强,反复列举较为麻烦,所以开一个新的文章,专门记录整理标准库代码。仅记录个人常用,建议参考手册,或直接跳转函数定义,浏览官方说明。
时钟控制
时钟就像人的心跳,人的运动先需要跳动心脏。STM32的片上外设也是一样,如果要使用外设,例如:GPIO,NVIC,ADC等等,需要先开启外设挂载的总线时钟。
以下是标准库中对时钟控制函数的定义:
1 | //AHB总线时钟控制 |
第一个参数为外设,例如APB2的外设:RCC_APB2Periph_GPIOA,RCC_APB2Periph_GPIOB,RCC_APB2Periph_TIM1等,
第二个参数为使能或者失能。(ENABLE/DISABLE)
比如开启APB2的GPIOA为例:
1 | RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); |
外设的使用必须先开启时钟。
GPIO
1 | //指定GPIO初始化为默认值 |
结构体
1 | typedef struct |
GPIO模式
1 | typedef enum |
NVIC
1 | void NVIC_PriorityGroupConfig(uint32_t NVIC_PriorityGroup); //设置中断优先级分组 |
EXIT
1 | void EXTI_DeInit(void); //清除EXTI配置 |
结构体
1 | typedef struct |
TIM
过长,具体参考STM32固件函数库手册。
函数名 | 描述 |
---|---|
TIM_DeInit | 将外设 TIMx 寄存器重设为缺省值 |
TIM_TimeBaseInit | 根据 TIM_TimeBaseInitStruct 中指定的参数初始化 间基数单位 |
TIM_OCInit | 根据 TIM_OCInitStruct 中指定的参数初始化外设 |
TIM_ICInit | 根据 TIM_ICInitStruct 中指定的参数初始化外设 T |
TIM_TimeBaseStructInit | 把 TIM_TimeBaseInitStruct 中的每一个参数按缺省 |
TIM_OCStructInit | 把 TIM_OCInitStruct 中的每一个参数按缺省值填 |
TIM_ICStructInit | 把 TIM_ICInitStruct 中的每一个参数按缺省值填入 |
TIM_Cmd | 使能或者失能 TIMx 外设 |
TIM _ITConfig | 使能或者失能指定的 TIM 中断 |
TIM_DMAConfig | 设置 TIMx 的 DMA 接口 |
TIM_DMACmd | 使能或者失能指定的 TIMx 的 DMA 请求 |
TIM_InternalClockConfig | 设置 TIMx 内部时钟 |
TIM_ITRxExternalClockConfig | 设置 TIMx 内部触发为外部时钟模式 |
TIM_TIxExternalClockConfig | 设置 TIMx 触发为外部时钟 |
TIM_ETRClockMode1Config | 配置 TIMx 外部时钟模式 1 |
TIM_ETRClockMode2Config | 配置 TIMx 外部时钟模式 2 |
TIM_ETRConfig | 配置 TIMx 外部触发 |
TIM_SelectInputTrigger | 选择 TIMx 输入触发源 |
TIM_PrescalerConfig | 设置 TIMx 预分频 |
TIM_CounterModeConfig | 设置 TIMx 计数器模式 |
TIM_ForcedOC1Config | 置 TIMx 输出 1 为活动或者非活动电平 |
TIM_ForcedOC2Config | 置 TIMx 输出 2 为活动或者非活动电平 |
TIM_ForcedOC3Config | 置 TIMx 输出 3 为活动或者非活动电平 |
TIM_ForcedOC4Config | 置 TIMx 输出 4 为活动或者非活动电平 |
TIM_ARRPreloadConfig | 使能或者失能 TIMx 在 ARR 上的预装载寄存器 |
TIM_SelectCCDMA | 选择 TIMx 外设的捕获比较 DMA 源 |
TIM_OC1PreloadConfig | 使能或者失能 TIMx 在 CCR1 上的预装载寄存器 |
TIM_OC2PreloadConfig | 使能或者失能 TIMx 在 CCR2 上的预装载寄存器 |
TIM_OC3PreloadConfig | 使能或者失能 TIMx 在 CCR3 上的预装载寄存器 |
TIM_OC4PreloadConfig | 使能或者失能 TIMx 在 CCR4 上的预装载寄存器 |
TIM_OC1FastConfig | 设置 TIMx 捕获比较 1 快速特征 |
TIM_OC2FastConfig | 设置 TIMx 捕获比较 2 快速特征 |
TIM_OC3FastConfig | 设置 TIMx 捕获比较 3 快速特征 |
TIM_OC4FastConfig | 设置 TIMx 捕获比较 4 快速特征 |
TIM_ClearOC1Ref | 在一个外部事件时清除或者保持 OCREF1 信号 |
TIM_ClearOC2Ref | 在一个外部事件时清除或者保持 OCREF2 信号 |
TIM_ClearOC3Ref | 在一个外部事件时清除或者保持 OCREF3 信号 |
TIM_ClearOC4Ref | 在一个外部事件时清除或者保持 OCREF4 信号 |
TIM_UpdateDisableConfig | 使能或者失能 TIMx 更新事件 |
TIM_EncoderInterfaceConfig | 设置 TIMx 编码界面 |
TIM_GenerateEvent | 设置 TIMx 事件由软件产生 |
TIM_OC1PolarityConfig | 设置 TIMx 通道 1 极性 |
TIM_OC2PolarityConfig | 设置 TIMx 通道 2 极性 |
TIM_OC3PolarityConfig | 设置 TIMx 通道 3 极性 |
TIM_OC4PolarityConfig | 设置 TIMx 通道 4 极性 |
TIM_UpdateRequestConfig | 设置 TIMx 更新请求源 |
TIM_SelectHallSensor | 使能或者失能 TIMx 霍尔传感器接口 |
TIM_SelectOnePulseMode | 设置 TIMx 单脉冲模式 |
TIM_SelectOutputTrigger | 选择 TIMx 触发输出模式 |
TIM_SelectSlaveMode | 选择 TIMx 从模式 |
TIM_SelectMasterSlaveMode | 设置或者重置 TIMx 主/从模式 |
TIM_SetCounter | 设置 TIMx 计数器寄存器值 |
TIM_SetAutoreload | 设置 TIMx 自动重装载寄存器值 |
TIM_SetCompare1 | 设置 TIMx 捕获比较 1 寄存器值 |
TIM_SetCompare2 | 设置 TIMx 捕获比较 2 寄存器值 |
TIM_SetCompare3 | 设置 TIMx 捕获比较 3 寄存器值 |
TIM_SetCompare4 | 设置 TIMx 捕获比较 4 寄存器值 |
TIM_SetIC1Prescaler | 设置 TIMx 输入捕获 1 预分频 |
TIM_SetIC2Prescaler | 设置 TIMx 输入捕获 2 预分频 |
TIM_SetIC3Prescaler | 设置 TIMx 输入捕获 3 预分频 |
TIM_SetIC4Prescaler | 设置 TIMx 输入捕获 4 预分频 |
TIM_SetClockDivision | 设置 TIMx 的时钟分割值 |
TIM_GetCapture1 | 获得 TIMx 输入捕获 1 的值 |
TIM_GetCapture2 | 获得 TIMx 输入捕获 2 的值 |
TIM_GetCapture3 | 获得 TIMx 输入捕获 3 的值 |
TIM_GetCapture4 | 获得 TIMx 输入捕获 4 的值 |
TIM_GetCounter | 获得 TIMx 计数器的值 |
TIM_GetPrescaler | 获得 TIMx 预分频值 |
TIM_GetFlagStatus | 检查指定的 TIM 标志位设置与否 |
TIM_ClearFlag | 清除 TIMx 的待处理标志位 |
TIM_GetITStatus | 检查指定的 TIM 中断发生与否 |
TIM_ClearITPendingBit | 清除 TIMx 的中断待处理位 |