基本上所有外设都有以下几类寄存器:【CR/DR/SR】
(1)控制寄存器 xxx_CR(Control/Configuration Register):这类寄存器是用来配置、控制 相应 外 设 的 工 作 方 式 的 。 如 GPIOx_CRL、GPIOx_CRH, AFIO_EXTICR1~AFIO_EXTICR4,串口的 USART_CR1~USART_CR3等。
(2)数据寄存器 xxx_DR(Data Register):这类寄存器主要是存储了外设进行输出输入的数据。如 GPIOx_IDR、GPIOx_ODR、USART_DR 等。
(3)状态寄存器 xxx_SR(Status Register):这类寄存器主要存储了当前外设的运行状态,主要为一些标志位。如 USART_SR、ADC_SR等。
一、初始化
GPIO_InitTypeDef型的 GPIO_InitStructure 用来配置 GPIO;
NVIC_InitTypeDef型的 NVIC_InitStructure 用来配置 NVIC;
EXTI_InitTypeDef型的 EXTI_InitStructure 用来配置 EXTI;
USART_InitTypeDef型的 USART_InitStructure 用来配置 USART。
初始化结构体的控制参数,一般就是与相应外设的控制寄存器 xxx_CR 对应的。
使用ST库对外设进行初始化,一般有以下步骤:
(1)定义一个xxx_InitTypeDef类型的初始化结构体。
(2)根据使用需求,向这些初始化结构体的成员写入特定的控制参数。
(3)填充好结构体之后,把这个结构体作为输入参数调用相应的外设库函数xxx_Init(),从而实现向寄存器写入控制参数,并配置好外设。
如ADC_InitTypeDef, ADC_Init() , I2C_InitTypeDef ,I2C_Init() 等。它们的应用方法都是相同的,区别在于不同的外设其结构体成员不一样,可输入参数相应也不同。
二、数据的输入输出
对外设的使用,一般涉及其输入和输出数据。如GPIO 的 输入输出 函 数: GPIO_ReadOutputDataBit()、GPIO_ReadInputData()、GPIO_SetBits();还有USART 的收发数据函数:USART_ReceiveData()、USART_SendData(),这类函数都是用于控制输入输出数据的。这些函数控制相应外设数据寄存器 DR 的内容,达到控制输入输出的目的。
(1)通过输入参数,向函数指定要使用的是什么外设,如用(GPIOA,GPIO_Pin_5)选定PA5进行控制,用(USART1)来指定使用串口1外设。
(2)若向外输出数据,则调用Output或 Send函数,把将要输出的数据变量作为函数的输入参数。
(3)若为接收外部数据,则调用Read或Receive函数,读取函数的返回值来得到外部输入数据。对于其他外设,也有类似的控制数据输入输出函数。如用ADC_GetConversionValue()函数来获取ADC转换所得到的数值;用I2C_SendData()函数来使用I 2 C接口进行发送数据。
三、状态位、标志位
xxx_GetFlagStatus() 或 xxx_GetITStatus(),功能分别为获取事件标志位状态和中断标志位状态。xxx_ClearFlag() 或 xxx_ClearITPendingBit() 函数,功能分别为清除事件标志位和清除挂起的中断标志位。这四类函数都是对应到外设的 xxx_SR 寄存器的。
四、外设函数分类
上一篇:stm32点亮LED灯一(库函数版)
下一篇:(STM32)GPIO库函数使用一览
推荐阅读最新更新时间:2024-11-10 13:42
设计资源 培训 开发板 精华推荐
- 来自多个输入源的 LTC3622HDE-2 双路输出降压型稳压器的典型应用电路
- DC292B-B,使用 LTC1709EG-8、12Vin、1.6Vout @ 45A 高电流 VRM 8.4 CPU 电源的演示板,主要采用表面贴装电容
- HV9919BDB1,单路大电流 LED 驱动器演示板
- LT8330ES6 8V 至 30V 输入、-24V 反相转换器的典型应用电路
- LTC2637-HMI12 四通道、12 位数模转换器的典型应用
- ADM7160 超低噪声、200 mA 线性稳压器的典型应用
- MCIMX50EVK、IMX50 应用处理器开发套件
- 基于STGIF10CH60TS-L SLLIMM™2nd系列IPM的1000 W电机控制电源板
- 基于TDA7492的50W+50W双BTL D类音频功放演示板
- LTC4278 演示板,具有 12V 辅助电压的 IEEE802.3at PD 控制器,Vout = 5V,Iout = 4.5A