历史上的今天
今天是:2024年09月06日(星期五)
2018年09月06日 | STM32中对GPIO的配置与使用
2018-09-06 来源:eefocus
其实学习单片机最先熟悉的无非就是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的一个配置,故使用推挽输出
}
其他内容会贴在博客上,回顾一下
下一篇:stm32 IO操作备注
史海拾趣
|
关于GetModuleFileName一直返回NULL的问题 下面这个函数目的是获取当前运行的应用程序的目录,但使用GetModuleFileName返回的总是0.不知道为何。 bool GetCurrentPath(LPTSTR szPath) { HMODULE handle = GetModuleHandle(NULL); &nbs ...… 查看全部问答> |
|
我,大二的小童鞋,软件工程 这个暑假打算在实验室好好研究一下驱动程序的开发,以后也想在这一块发展 不知目前搞驱动开发的就业如何,待遇咋样,过来人帮忙给分析一下下 小弟这里多谢了… 查看全部问答> |
|
中国3G时代即将到来,社会对3G嵌入式软件人才的渴求使3G人才已经成为业界关注“3G软环境”的焦点之一。目前,我国的3G核心人才仅有不足万人,而且基本上都被几大运营商和设备厂商所掌握。广大手持端设备制造商所急需的嵌入式开发人才、软件开发商所 ...… 查看全部问答> |
|
准备用44b0来学习网络通讯软件编程序. 好像有一款工具是专门探测电脑网络数据.就象Bus Hound看USB数据一样. 但不记得这款软件的名称. 大家在做网络设计时候一般是用哪款工具来调试网络程序的?… 查看全部问答> |




