STM32小笔记(一) GPIO口的配置
来源:互联网 发布:淘宝图片保护怎么申请 编辑:程序博客网 时间:2024/05/16 07:30
GPIO口的使用:
1.GPIO和AFIO
GPIO寄存器
(1)两个32位配置寄存器(GPIOx_CRL,GPIOx_CRH);
(2)两个32位数据寄存器(GPIOx_IDR,GPIOx_ODR);
(3)一个32位置为/复位寄存器(GPIOx_BSRR);
(4)一个16位复位寄存器(GPIOx_BRR);
(5)一个32位锁存器(GPIOx_LCKR);
当I/O端口配置为输入时:
●
●
●
●
●
输出配置
当I/O端口被配置为输出时:
●
─
─
●
●
●
●
●
STM32中的配置寄存器在固件函数库中早已生成,因此无需再对寄存器的每个设定写定义,而是直接调用关键字。这样我们可以不再关心寄存器的具体配置(因为那已经在固件配置好了);因此直观的从配置函数中去看,更能有效的提高。
GPIO相关的库函数如下,位于在“stm32f10x_gpio.h”
GPIO相关函数如下:
void
void
void
void
uint8_t
uint16_t
uint8_t
uint16_t
void
void
void
void
void
void
void
void
void
void
以下将逐个说明函数功能及注释说明:
·void
该函数原型在"stm32f10x_gpio.C"当中,类似C++
其中是为不同组的IO口进行寄存器值的初始化。
初始化语句如下:
“
RCC_APB2PeriphResetCmd(RCC_APB2Periph_GPIOA,
再追根溯源到这个函数,位于“stm32f10x_rcc.C”当中
"void
{
}
函数注释如下:
一目了然,即配置IO口时钟状态为使能或者失效。
当然在其中此函数作为一个初学实例还是值得深究的:
此处两句即类似于C++中的断言函数,作为函数运行的先决条件。这里将断言函数直接说明,在后续的实例中,仍旧会有使用到的地方。
#else
#endif
#endif
若满足断言值为"1"的条件,否则判定失败输出
再返回“assert_param(IS_RCC_APB2_PERIPH(RCC_APB2Periph));”此句中。“IS_RCC_APB2_PERIPH”如下定义:
·#define
此处使用到的是AP2
·#define
只为考虑还是的形参是否是“DISABLE”or“ENABLE”
“
”
而APB2RSTR则即将牵扯到RCC的设置问题,我们下一节再讲。
·void
同样调用“RCC_APB2PeriphResetCmd”。也是串口初始化判断
·void
寄存器手册中记为:根据GPIO_InitStruct中指定参数初始化外设GPIOx寄存器
不想在此处在赘述此函数,主要通过写寄存器的值来配置GPI0x,GPIO_pin,GPIO_Mode,GPIO_speed,以及写GPIO
·void
GPIO_Speed
GPIO_Speed_10MHz
GPIO_Speed_2MHz
GPIO_Speed_50MHz
GPIO_Mode_AIN
GPIO_Mode_IN_FLOATING
GPIO_Mode_IPD
GPIO_Mode_IPU
GPIO_Mode_Out_OD
GPIO_Mode_Out_PP
GPIO_Mode_AF_OD
GPIO_Mode_AF_PP
·
uint8_t
uint16_t
uint8_t
uint16_t
读取指定管脚输入/输出,读取管脚输入/输出数据值。
·
void
void
void
"bitval
void
设定/清除指定的数据位
·void
锁存管脚寄存器,锁存指定GPIO组指定引脚。
·void
配置GPIO为事件输出,其后我们来解决这个疑问。
·void
此函数决定了IO口的重新映射,实际是IO复用功能的实现,GPIO_Remap选择输入引脚,NewState的配置值如下:GPIO_Remap_SPI1
GPIO_Remap_I2C1
GPIO_Remap_USART1
GPIO_PartialRemap_USART3
GPIO_FullRemap_USART3
GPIO_PartialRemap_TIM1
GPIO_FullRemap_TIM1
GPIO_PartialRemap1_TIM2
GPIO_PartialRemap2_TIM2
GPIO_FullRemap_TIM2
GPIO_PartialRemap_TIM3
GPIO_FullRemap_TIM3
GPIO_Remap_TIM4
GPIO_Remap1_CAN
GPIO_Remap2_CAN
GPIO_Remap_PD01
GPIO_Remap_SWJ_NoJTRST
GPIO_Remap_SWJ_JTAGDisable
GPIO_Remap_SWJ_Disable
每个功能在后面小节的应用中体现。
·void
GPIO配置为外部中断,两个值分别为端口值和引脚。
·void
最后一个配置以太网接口。该函数只有两行语句。此处不作介绍。
- STM32小笔记(一) GPIO口的配置
- STM32学习笔记(一)-------GPIO口的操作
- stm32学习笔记 F1系列GPIO相关寄存器的配置
- STM32的GPIO口
- stm32 GPIO口配置操作
- stm32寄存器版学习笔记01 GPIO口的配置(LED、按键)
- stm32学习笔记(一) GPIO
- STM32 -- 笔记一 -- CLK、GPIO、PWM
- STM32学习笔记之GPIO配置问题
- stm32学习笔记之GPIO配置
- STM32的GPIO口的8种配置模式
- STM32的IO口的8种配置(GPIO)
- STM32的GPIO口的8种配置模式
- STM32的GPIO口的8种配置模式
- STM32的GPIO口的8种配置模式
- STM32学习笔记(1):GPIO口的使用
- STM32学习笔记之GPIO口的使用
- STM32学习笔记(1):GPIO口的使用
- WebLogic配置JNDI数据源
- 动静分离 ( 大白话 )
- 关于UItableView的表头背景颜色的设置
- OKhttp的封装工具类(可以直接使用)
- android---获取值AndroidManifest.xml中meta-data的value
- STM32小笔记(一) GPIO口的配置
- 一份React-Native学习指南
- sscanf-的用法
- Android流式标签
- android应用程序第12课:RelativeLayout
- 223. Rectangle Area
- 小Y的智力游戏
- sqli labs通关秘籍
- java实现简单五子棋