您的位置:首页 > 其它

STM32中对GPIO的配置与使用

2017-06-05 20:08 190 查看
               笔记写入一份到博客里,没事还可以查看一下,自己的也大致总结了一下自己对这个知识的理解

其实学习单片机最先熟悉的无非就是I/O口的操作。STM32的GPIO也好理解,就8种模式。了解什么功能使用什么模式,怎么配置就可以了。废话不多说,了解一下GPIO口吧。学习时大家应该都有资料,我就不多贴资料了,下图是GPIO(STM32F10x)的电路图。(51的I/O口不需要配置,电平输送不但简单,而且不能像GPIO集成各种协议一起使用,如SPI,SPI协议后面也会介绍)


我大致将配置模式介绍一下,并将使用该模式的功能也对应一下

输入模式:(相对MCU)

1. 浮空--外部输入何种电平,该引脚就是何种电平。       结构体模式配置:GPIO_Mode_IN_FLOATING    

2.上拉--顾名思义,接VDD的开关开启,接上上拉电阻。   结构体模式配置:GPIO_Mode_IPU    (在我的开发板上,key1,key2,key3外接GND, 所以这里使用上拉,红外接收也使用到)

3.下拉--接VSS的开关开启,接上下拉电阻。    结构体模式配置:GPIO_Mode_IPD                          (而key_up外接3.3V,所以这里用下拉)

4.模拟输入--IO端口的数据直接进入ADC模块。  结构体模式配置:GPIO_Mode_AIN                    (DAC,ADC数据采集就要用到)

输出模式:(相对MCU)

1.开漏输出:MCU可以向IO端口写“0”。写“1”时由外部电路决定,例如上拉则为1,下拉则为0.  输入寄存器可以读取IO端口的电平值。  结构体模式配置:GPIO_Mode_Out_OD

2.开漏复用:与开漏输出差不多,由MCU控制转由外设模块控制而已。 结构体模式配置:GPIO_Mode_AF_OD

3.推挽式输出:MCU向I/O端口可写“0”写“1”。类似51的IO操作。使用较多 。  结构体模式配置:GPIO_Mode_Out_PP  (对于直接连接的就用这个了,数码管,蜂鸣器等)

4.推挽式复用功能:  向I/O端口写“0”写“1”的 功能交给外设模块而已。使用也多。 结构体配置:GPIo_Mode_AF_PP  (PWM,UASRT,TFT,SPI,DMA..使用外设都要使用)

void LED_Init()    

{
GPIO_InitTypeDef GPIO_InitStructure;         /*
配置GPIO的结构体*/

SystemInit();    
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);  

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;  
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_ALL;                

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;  

GPIO_Init(GPIOC,&GPIO_InitStructure);              //这是点亮外接IO的LED的一个配置,故使用推挽输出    

}

其他内容会贴在博客上,回顾一下
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: