STM32F429之GPIO使用

发布者:SereneHeart最新更新时间:2019-01-30 来源: eefocus关键字:STM32F429  GPIO 手机看文章 扫描二维码
随时随地手机看文章

STM32   IO模式

(1)浮空输入_IN_FLOATING ——浮空输入,可以做KEY识别,RX1

(2)带上拉输入_IPU——IO内部上拉电阻输入

(3)带下拉输入_IPD—— IO内部下拉电阻输入 

(4) 模拟输入_AIN ——应用ADC模拟输入,或者低功耗下省电

(5)开漏输出_OUT_OD ——IO输出0接GND,IO输出1,悬空,需要外接上拉电阻,才能实现输出高电平。当输出为1时,IO口的状态由上拉电阻拉高电平,但由于是开漏输出模式,这样IO口也就可以由外部电路改变为低电平或不变 。可以读IO输入电平变化,实现C51的IO双向功能

(6)推挽输出_OUT_PP ——IO输出0-接GND, IO输出1 -接VCC,读输入值是未知的

(7)复用功能的推挽输出_AF_PP ——片内外设功能(I2C的SCL,SDA)

(8)复用功能的开漏输出_AF_OD——片内外设功能(TX1,MOSI,MISO.SCK.SS)


实例总结:


(1)模拟I2C使用开漏输出_OUT_OD,接上拉电阻,能够正确输出0和1;读值时先

GPIO_SetBits(GPIOB, GPIO_Pin_0);拉高,然后可以读IO的值;使用

GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_0);


(2)如果是无上拉电阻,IO默认是高电平;需要读取IO的值,可以使用

带上拉输入_IPU和浮空输入_IN_FLOATING和 开漏输出_OUT_OD;


推挽输出与开漏输出的区别


推挽输出:可以输出高,低电平,连接数字器件;开漏输出:输出端相当于三极管的集电极. 要得到高电平状态需要上拉电阻才行. 适合于做电流型的驱动,其吸收电流的能力相对强(一般20ma以内).

推挽结构一般是指两个三极管分别受两互补信号的控制,总是在一个三极管导通的时候另一个截止.

要实现 线与 需要用OC(open collector)门电路.是两个参数相同的三极管或MOSFET,以推挽方式存在于电路中,各负责正负半周的波形放大任务,电路工作时,两只对称的功率开关管每次只有一个导通,所以导通损耗小,效率高。输出既可以向负载灌电流,也可以从负载抽取电流


当端口配置为输出时: 

开漏模式:输出 0 时,N-MOS 导通,P-MOS 不被激活,输出0。

输出 1 时,N-MOS 高阻, P-MOS 不被激活,输出1(需要外部上拉电路);此模式可以把端口作为双向IO使用。

推挽模式:输出 0 时,N-MOS 导通,P-MOS 高阻 ,输出0。

输出 1 时,N-MOS 高阻,P-MOS 导通,输出1(不需要外部上拉电路)。


简单来说开漏是0的时候接GND 1的时候浮空 推挽是0的时候接GND 1的时候接VCC


 


 


 


GPIO使用初始化配置


void GPIO_config(void)

{

 /*定义一个 GPIO_InitTypeDef 类型的结构体*/

 GPIO_InitTypeDef GPIO_InitStructure;

 /*开启 LED 相关的 GPIO 外设时钟*/

 RCC_AHB1PeriphClockCmd ( RCC_AHB1Periph_GPIOH, ENABLE);

 /*选择要控制的 GPIO 引脚*/

 GPIO_InitStructure.GPIO_Pin = LED1_PIN;

 /*设置引脚模式为输出模式*/

 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;

 /*设置引脚的输出类型为推挽输出*/

 GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;

 /*设置引脚为上拉模式*/

 GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;

 /*设置引脚速率为 2MHz */

 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;

 /*调用库函数,使用上面配置的 GPIO_InitStructure 初始化 GPIO*/

 GPIO_Init(GPIOH, &GPIO_InitStructure);

 /*置位相应引脚*/

 GPIO_SetBits(GPIOH,LED1_PIN);

 

}

使用GPIO要进行的配置


1、使用 GPIO_InitTypeDef 定义 GPIO 初始化结构体变量,以便下面用于存储 GPIO 配置。


2、向 RCC 寄存器赋值调用库函数 RCC_AHB1PeriphClockCmd 来使能

 


GPIO可配置模式


输入浮空

输入上拉

输入下拉

模拟功能

具有上拉或下拉功能的开漏输出

具有上拉或下拉功能的推挽输出

具有上拉或下拉功能的复用功能推挽

具有上拉或下拉功能的复用功能开漏


GPIO 端口模式

  GPIO_Mode_IN   = 0x00, /*!< GPIO Input Mode */

  GPIO_Mode_OUT  = 0x01, /*!< GPIO Output Mode */

  GPIO_Mode_AF   = 0x02, /*!< GPIO Alternate function Mode */

  GPIO_Mode_AN   = 0x03  /*!< GPIO Analog Mode */


00:输入(复位状态)

01:通用输出模式

10:复用功能模式

11:模拟模式

 


GPIO 端口输出类型


GPIO_OType_PP = 0x00,//0:输出推挽(复位状态)

  GPIO_OType_OD = 0x01//1:输出开漏

在输入模式下,GPIO_OType 不起作用,但这个变量还是应该赋值的


GPIO 端口输出速度

00: 2 MHz(低速)

01: 25 MHz(中速)

10: 50 MHz(快速)

11: 30 pF 时为 100 MHz(高速)

 


GPIO 端口上拉/下拉寄存器

00:无上拉或下拉

01:上拉

10:下拉

11:保留

 


GPIO 端口输入数据寄存器

GPIO 端口输出数据寄存器

GPIO 端口置位/复位寄存器

GPIO 端口配置锁定寄存器

GPIO 复用功能低位寄存器

关键字:STM32F429  GPIO 引用地址:STM32F429之GPIO使用

上一篇:STM32F407各定时器的时钟频率
下一篇:STM32 GPIO模式总结

推荐阅读最新更新时间:2024-03-16 16:23

助力车载驾驶系统更灵活 纳芯微推出车规级I²C GPIO扩展器件NCA9539-Q1
2022年9月28日 – 纳芯微宣布(NOVOSENSE)推出全新车规I²C GPIO扩展芯片NCA9539-Q1,可通过I²C扩展16个GPIO通道,广泛适用于汽车座舱娱乐系统、汽车辅助驾驶系统、车身电子、新能源汽车动力总成等模块,工作温度可高达125度,且能在严苛要求的汽车领域提供更强抗干扰能力,同时有效降低了成本,为客户解决了成本与性能兼备的双向需求。 该产品已通过AEC-Q100(Grade1)可靠性认证,从设计、制造到封装测试实现了国产化全流程,确保供应的安全与可靠,以更好地满足客户的交付需求。 更简明的方案 NCA9539-Q1是一款汽车级24引脚CMOS器件,提供16位通用并行I²C总线数输入/输
[汽车电子]
助力车载驾驶系统更灵活 纳芯微推出车规级I²C <font color='red'>GPIO</font>扩展器件NCA9539-Q1
STM32F10XX之应用笔记-GPIO设置
STM32F10XX会根据封装不同而引脚数不同;36脚(A 半B)48脚(A B) 64脚(ABC) 100脚(ABCDE) 144脚(ABCDEFG);STM32F10XX最多就是有7组16位的IO口;当然IO口越多能完成的功能就越多,能完完全全发挥STM32F10XX所有外设功能的只有144脚封装。 ST公司为STM32系列的芯片编写了固件库,给我们开发带来了很多方便;所以大家都觉得它好用,最重要的原因就是这了。但是要完全玩透它还是得去看看底层是怎么设置寄存器的,这对我们完成某个功能有更深刻的了解。 首先从设置GPIO开始,要使用一个IO口得有两个过程:一是使能IO口组的时钟;二是设置IO口的方向。牵扯到的寄存器有CCR_
[单片机]
STM32F10XX之应用笔记-<font color='red'>GPIO</font>设置
【跟着江科大学Stm32】GPIO_按键控制LED_光敏传感器控制蜂鸣器
一、按键控制LED 用两个按键来分别控制两个LED的状态,初始状态两灯均熄灭,按下1次点亮,再按下熄灭 因为江科大的套餐抢不到 我就自己看着图和利用现有的东西配了一套,结果是一样的,会比较乱 LED.H #ifndef __LED_H #define __LED_H void LED_Init(void); void LED1_ON(void); void LED1_OFF(void); void LED2_ON(void); void LED2_OFF(void); #endif LED.c #include stm32f10x.h // Device header void LED_
[单片机]
【跟着江科大学Stm32】<font color='red'>GPIO</font>_按键控制LED_光敏传感器控制蜂鸣器
第32章 STM32F429的SPI总线应用之驱动W25QXX(支持查询,中断和DMA)
32.1 初学者重要提示 学习本章节前,务必优先学习第31章。 W25Q64FV属于NOR型Flash存储芯片。 W25Q64FV手册下载地址:链接 (这是一个超链接),当前章节配套例子的Doc文件件里面也有存放。 本章第3小节整理的知识点比较重要,务必要了解下,特别是页编程和页回卷。 对SPI Flash W25QXX的不同接线方式(1线,2线或者4线,这里的线是指的数据线),编程命令是不同的。 W25Q64FV最高支持104MHz,但最高读命令03H速度是50MHz。 文件bsp_spi_bus.c文件公共的总线驱动文件,支持串行FLASH、TSC2046、VS1053、AD7705、ADS1256等S
[单片机]
第32章 <font color='red'>STM32F429</font>的SPI总线应用之驱动W25QXX(支持查询,中断和DMA)
STM32F4中GPIO_PuPd寄存器设置上拉与下拉问题
首先 上下拉 是给IO一个默认的状态 比如控制EN的话,那么高有效的我们就下拉,低有效的话我们就上拉 而 很多IO 由于CMOS工艺问题会出现float的现象,所以不能悬空 需要PU PD。 上拉和下拉是指GPIO输出高电位(上拉)还是低电位(下拉)。 上拉就是输入高电平,然后接一个上拉电阻(起保护作用),知道上拉就表示该端口在默认情况下输入为高电平。 下拉就相反了,指输入低电平,然后接一个下拉电阻。 那么,什么是高电平,什么是低电平呢?这是电路方面的知识,百度百科讲的,表示不太懂。 上拉就是将不确定的信号通过一个电阻钳位在高电平,电阻同时起限流作用。 下拉同理。也是将不确定的信号通过一个电阻钳位在低电平。 不过从程序设计的角度
[单片机]
STM32CubeMX系列教程1:GPIO
打开STM32CubeMX新建工程,选择STMF746IGT6芯片。选择外部高速晶振(HSE). 根据Open746I-C开发板原理图(原理图可在微雪电子网站上下载),选择按键和LED引脚 PA0,PG2,PG3,PD4,PD5,PD11为按键输入管脚,选择GPIO_INPUT模式。 PB6,PB7,PH4,PI8为LED输出控制管脚,选择GPIO_OUTPUT模式。 点击Clock Configuration配置系统时钟为216M最高速度。 点击Configuration- GPIO配置管脚。五向按键管脚配置为上拉输入模式,WakeUp按键已经为外部下拉,故不用配置(R6为下拉电阻,R5,C3为RC滤波去
[单片机]
STM32CubeMX系列教程1:<font color='red'>GPIO</font>
STM32(9) GPIO口复用功能实现(正点原子)
一个GPIO口可以 复用成内部外设的功能引脚,这里我们利用PA9PA10设置为UART1来举例。 IO口对应的复用功能需要查表来确定。这个表在芯片手册 下面这个图讲解了GPIO口的复用原理 上图右边左图是复用器(AFRL(31:0)、AFRH(31:0)),要复用哪个引脚就将相应的GPIO连接到复用器上,即可。 那么接下来我们就讲解 一下如何利用复用器去将GPIO口配置成复用功能。AFRL和AFRH都是32的寄存器,每一个GPIO口占用4位,所以在一组IO口中,他的低8位(PA0-PA7)占用AFRL,他的高8位(PA8-PA15)占用AFRH。 例如:我们要配置GPIOA2配置成UART2, 1.G
[单片机]
STM32(9) <font color='red'>GPIO</font>口复用功能实现(正点原子)
ST官方库函数之GPIO口读写函数
GPIO口读写函数有如下8个; uint8_t GPIO_ReadInputDataBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin); uint16_t GPIO_ReadInputData(GPIO_TypeDef* GPIOx); uint8_t GPIO_ReadOutputDataBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin); uint16_t GPIO_ReadOutputData(GPIO_TypeDef* GPIOx); void GPIO_SetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin)
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved