1.GPIO简介:
1.GPIO为微控制器的通用输入/输出接口。
2.STM32F103VET6有80多根功能双向能承受5V电压的快速I/O线。每16根口线分为一组。
3.每个GPIO有两个32位配置寄存器,两个32位数据寄存器,一个32位置位/复位寄存器,一个16位复位寄存器和一个32位锁定寄存器。
4.GPIO口的每个位都可以由软件设置成输入浮空、输入上拉、输入下拉、模拟输入、开漏输出、推挽式输出6个模式和推挽式复用、开漏复用两种功能。
5.有的GPIO口有复用功能。
6.每个IO口能够自由编程,其寄存器必须按32位字访问。
7:每个IO口的基本结构:
2.GPIO的8种工作方式
参照GPIO的8种工作模式详解_LzChang的博客-优快云博客_gpio的8种工作模式,讲的很详细。
3.GPIO相关的函数和寄存器
寄存器(实质上是对位进行操作)(32位寄存器):
端口配置低寄存器GPIOx_CRL:用于设置低8个IO端口的输入输出模式、速度。
端口配置高寄存器GPIOx_CRH:用于设置高8个IO端口的输入输出模式、速度。
端口输入数据寄存器GPIO_IDR:低16位有效,保存着端口输入的数据,这些位只读并只能以字(16位)的形式读出,值位对应IO口的状态。
端口输出数据寄存器GPIO_ODR:低16位有效,可读可写只能以字(16位)的形式操作,可以分别对各个ODR位进行独立的设置和清除。
端口位设置/清除寄存器GPIOx_BSRR:高16位为清0操作,低16位为置1操作。
端口位清除寄存器GPIOx_BRR:低16位有效。
端口配置锁定寄存器GPIOx_LCKR:用于锁定端口配置。
函数(实质上是对寄存器进行操作)
见stm32中的GPIO库函数(有必要再补充)
4.GPIO的初始化
1.配置GPIO的时钟,用到RCC_APB2PeriphClockCmd()函数。
2.配置中断向量表(等接下去研究中断再详细描述)
3.配置GPIO的模式
4.最后操作GPIO的输入输出