微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > STM32 IO模式

STM32 IO模式

时间:12-03 来源:互联网 点击:

悬空的情况下,读取该端口的电平是不确定的。

上拉输入/下拉输入/模拟输入:这几个概念很好理解,从字面便能轻易读懂。
复用开漏输出、复用推挽输出:可以理解为GPIO口被用作第二功能时的配置情况(即并非作为通用IO口使用)
最后总结下使用情况:
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)复用推挽表示引脚的io的操作由相应的功能模块来完成,普通推挽表示你需要通过gpio寄存器来操作引脚
(8)复用功能的开漏输出_AF_OD——片内外设功能(TX1,MOSI,MISO.SCK.SS)

STM32设置实例:

(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;

这是串口初始化函数中的一段代码

GPIOA->CRH|=0X000008B0;//IO状态设置

请问这里第九位为什么要设置成复用功能推挽输出模式 还有什么是复用功能推挽输出模式????????


因为是串口不在时普通的IO口所以复用,
因为没接上拉电阻所以推挽。
因为TX为发送数据端口所以输出。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top