STM32F10x标准外设库
STM32F10x标准外设库(固件库)是一个固件函数包,能够使得开发STM32变得比较简单(更简单的还是STM32CubeMX),其中每一个外设驱动都由一组函数组成,这组函数覆盖了该外设的所有功能,大体的意思还是让入门简单,当然这会带来亿点点问题。
缩写 | 外设名称 | 缩写 | 外设名称 |
---|---|---|---|
ADC | 模/数转换器 | I2S | 集成电路内置音频总线 |
BKP | 备份寄存器 | IWDG | 独立看门狗 |
CAN | 控制器局域网 | NVIC | 嵌套向量中断控制器 |
CRC | 循环冗余校验计算单元 | PWR | 电源控制 |
DAC | 数/模转换器 | RCC | 复位和时钟控制 |
DBGMCU | 微控制单元调试模块 | RTC | 实时时钟 |
DMA | 直接内存存取控制器 | SDIO | 安全数字输入输出接口 |
EXTI | 外部中断/事件控制器 | SPI | 串行外设接口 |
SysTick | 系统定时器 | FSMC | 灵活的静态接口存储器控制器 |
Flash | 闪存存储器 | TIM | 定时器 |
GPIO | 通用输入输出 | USART | 通用同步异步收发器 |
I2C | IIC总线接口 | WWDG | 窗口看门狗 |
假设joker表示一个外设接口,则:
joker_Init:根据joker_InitTypeDef中指定的参数初始化外设
joker_StructInit:将joker_InitTypeDef结构中的参数设为默认值
joker_Cmd:使能或者失能外设
joker_ITConfig:使能或失能外设的中断源
joker_GetITStatus:判断外设中断发生与否
joker_ClearITPendingBit:清除外设中断待处理标志位
这几天发生了一些有趣的事情,无论是自作多情还是尝试,每一件事的发生与自身息息相关,果然,自作聪明的人是不会知道自己的愚蠢的,只能克己复礼,修身养性才是最为重要的事情,言归正传
系统相关的源程序文件和头文件都以“stmf10x_”开头,如stm32f10x.h,其中有两个文件夹分别是Libraries和Project文件夹
Libraries文件夹下的标准库和启动文件:
1. core_cm3.c 和 core_cm3.h 分别是核内外设访问层(CPAL)的源文件和头文件
2. stm32f10x.h 是设备外设访问层(DPAL)的头文件,包括了此系列全部的外设寄存器定义
3. system_stm32f10x.c 和 system_stmf10x.h这两者分别是DPAL的源文件和头文件,其中包含了两个函数和一个全局变量,函数 SystemInit() 用来初始化系统时钟函数, SystemCoreClockUpdade() 用来更新系统时钟,当系统内核时钟出现变化后需执行该函数进行更新。全局变量SystemCoreClock 包含内核时钟(HCLK),方便用户在程序中定义SysTick定时器参数等
4. startup_stm32f10x_X.s是用汇编写的系统启动文件,X代表不同型号的芯片。启动文件是处理器上电复位后首先需要运行的是使用汇编来搭建一个属于c语言的环境,大致过程:设置初始堆栈指针(SP);设置初始程序计数器(PC)为复位向量,并在执行main()函数 前调用SystemInit()初始化系统时钟;设置向量表为异常事件的入口地址;复位后处理器为线程模式,优先级为特权级,堆栈设置为MSP主堆栈。(这段好深奥,看不懂有没有)
5. stm32f10x_joker.c 和 stm32f10x_joker.h 分别为外设joker的源文件和头文件,其中包括了相关外设的初始化配置和部分功能应用
6. misc.c 和 misc.h 提供了外设对内核中的嵌套向量中断控制器NCIC的访问函数,在配置中断时必须将这两个文件加到工程中。
Project文件夹下是采用标准库的一些工程模板
1. stm32f10x_it.c 和 stm32f10x_it.h 是用来编写中断服务函数,其中定义了一些系统异常的接口,如需普通中断服务函数则需要自己添加。中断服务函数接口在启动文件中已经完成。
2. stm32f10x_conf.h 文件是stm32f10x.h的子文件,用来配置使用了那些外设的头文件。
GPIO常用库函数
函数名 | 功能 |
---|---|
GPIO_DeInit | 将外设GPIOx寄存器重设为缺省值(默认选项(c)) |
GPIO_AFIODeInit | 将复用功能初始化 |
GPIO_Init | 根据GPIO_InitStruct 指定的参数初始化外设GPIOx寄存器 |
GPIO_StructInit | 将GPIO_InitStruct 指定的参数初始化 |
GPIO_ReadOutputDataBit | 读取指定端口引脚的输入 |
GPIO_ReadOutputData | 读取指定GPIO端口输入 |
GPIO_ReadOutputDataBit | 读取指定端口引脚的输出 |
GPIO_ReadOutputData | 读取指定GPIO端口输出 |
GPIO_SetBits | 设置指定的数据端口位 |
GPIO_ResetBIts | 清除(重置)指定的数据端口位 |
GPIO_WriteBit | 设置或清除指定的数据端口位 |
GPIO_Write | 向指定的GPIO数据端口写入数据 |
GPIO_PinLockConfig | 锁定GPIO引脚设置寄存器 |
GPIO_EventOutputConfig | 选择GPIO引脚用作时间输出 |
GPIO_EventOutputCmd | 使能或者失能事件输出 |
GPIO_PinRemapConfig | 改变指定引脚映射 |
GPIO_EXTILineConfig | 选择GPIO引脚作为外部中断线路 |