STM32单片机的八种IO口模式解析

发布者:逍遥游侠最新更新时间:2023-09-25 来源: elecfans关键字:STM32  单片机  IO口模式 手机看文章 扫描二维码
随时随地手机看文章

STM32八种IO口模式区别

(1)GPIO_Mode_AIN模拟输入

(2)GPIO_Mode_IN_FLOATING浮空输入

(3)GPIO_Mode_IPD下拉输入

(4)GPIO_Mode_IPU上拉输入

(5)GPIO_Mode_Out_OD开漏输出

(6)GPIO_Mode_Out_PP推挽输出

(7)GPIO_Mode_AF_OD复用开漏输出

(8)GPIO_Mode_AF_PP复用推挽输出


以下是详细讲解

(1)GPIO_Mode_AIN模拟输入

即关闭施密特触发器,将电压信号传送到片上外设模块(不接上、下拉电阻

(2)GPIO_Mode_IN_FLOATING浮空输入

浮空输入状态下,IO的电平状态是不确定的,完全由外部输入决定,如果在该引脚悬空的情况下,读取该端口的电平是不确定的

(3)GPIO_Mode_IPD下拉输入GPIO_Mode_IPU上拉输入

一般来讲,上拉电阻为1K-10K,电阻越小,驱动能力越强

电阻的作用:防止输入端悬空,减少外部电流对芯片的干扰,限流;,增加高电平输出时的驱动能力。

上拉输入:在默认状态下(GPIO引脚无输入)为高电平

下拉输入:在默认状态下(GPIO引脚无输入)为低电平

(4)GPIO_Mode_Out_OD开漏输出

开漏输出:输出端相当于三极管的集电极。要得到高电平状态需要上拉电阻才行。适合于做电流型的驱动,

其吸收电流的能力相对强(一般20ma以内)。

(5)GPIO_Mode_Out_PP推挽输出

推挽输出:可以输出高,低电平,连接数字器件;

(6)GPIO_Mode_AF_OD复用开漏输出GPIO_Mode_AF_PP复用推挽输出

复用开漏输出、复用推挽输出:可以理解为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)

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

通常有5种方式使用某个引脚功能,它们的配置方式如下:

1)作为普通GPIO输入:根据需要配置该引脚为浮空输入、带弱上拉输入或带弱下拉输入,同时不要使能该引脚对应的所有复用功能模块。

2)作为普通GPIO输出:根据需要配置该引脚为推挽输出或开漏输出,同时不要使能该引脚对应的所有复用功能模块。

3)作为普通模拟输入:配置该引脚为模拟输入模式,同时不要使能该引脚对应的所有复用功能模块。

4)作为内置外设的输入:根据需要配置该引脚为浮空输入、带弱上拉输入或带弱下拉输入,同时使能该引脚对应的某个复用功能模块。

5)作为内置外设的输出:根据需要配置该引脚为复用推挽输出或复用开漏输出,同时使能该引脚对应的所有复用功能模块。


关键字:STM32  单片机  IO口模式 引用地址:STM32单片机的八种IO口模式解析

上一篇:基于STM32的心电采集仪方案设计分析
下一篇:基于STM32的四旋翼飞行姿态串级控制的设计与实现

推荐阅读最新更新时间:2024-11-16 19:47

STM32定时计算详解
STM32之定时器 时间=次数x1/频率 ((1+TIM_Prescaler )/72M)*(1+TIM_Period )=((1+7199)/72M)*(1+9999)=1秒 一、定时器简介 1、时钟来源 2、定时器结构(以基本定时器为例) 二、基本定时器的编程方法 1、基本定时器的寄存器 2、例程 /** * @brief 定时器6的初始化,定时周期0.01s * @param 无 * @retval 无 */ void TIM6_Init(void) { TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; /*AHB = 72MHz,R
[单片机]
<font color='red'>STM32</font>定时计算详解
单片机笔记】二分法查找降序最接近的数
最近用到的ntc热敏电阻比较多,测温度精度还可以,最主要的是还很廉价,原理是不同温度环境下热敏电阻的阻值不同,利用这个搭建一个电路用ADC测出来再转换得到热敏的电阻值就可以用查表就可以得到温度了。一般的温度阻值表多是降序的,而且非线性,这样的话就需要查找一个最接近的值去粗略的得到温度,也还是能精确到1度的。至于如何制把厂家给的pdf或者excel制作成程里面的数组,之前的笔记也有专门提到: 代码中非线性表快速转换成数组的实用方法 最后贴上查找代码: static u8 Find_Num(const unsigned int code *tab,u16 SIZE, u16 num) { u8 left = 0,right
[单片机]
单片机C语言中数组的用法
数组是由具有相同类型的数据元素组成的有序集合。数组是由数组名来表示的,数组中的数据由特定的下标来唯一确定。引入数组的目的,是使用一块连续的内存空间存储多个类型相同的数据,以解决一批相关数据的存储问题。数组与普通变量一样,也必须先定义,后使用。数组在C51语言的地位举足轻重,因此深入地了解数组是很有必要的。下面就对数组进行详细的介绍。 (1)一维数组 一维数组是最简单的数组,用来存放类型相同的数据。数据的存放是线性连续的。 用以下例程说明数组的建立、数据操作: #include /* ----------------------------------------------------- 此程序用以说明数组的建立、
[单片机]
再造STM32---第二十一部分:串行FLASH文件系统 FatFs
21.1 文件系统简介: 使用SPI FLASH直接存储数据: 当需要记录字符“STM32-F429 SPI FLASH” 时。 可以把这些文字转化成ASCII码,存储在数组中,然后调用SPI_FLASH_BufferWrite函数,把数组内容写入到SPI Flash芯片的指定地址上,在需要的时候从该地址把数据读取出来,再对读出来的数据以ASCII码的格式进行解读。 • 难以记录有效数据的位置 • 难以确定存储介质的剩余空间 • 不明确应以何种格式来解读数据 Windows上的文件系统: 文件系统,就是对数据进行管理的方式。使用文件系统可有效地管理存储介质。 文件系统在计算机中的表现形式: 磁盘的物理结构:
[单片机]
再造STM32---第二十一部分:串行FLASH文件系统 FatFs
瑞萨推出低成本目标板以支持快速增长的RX系列32位MCU产品线
2018年2月27日,日本东京讯 - 全球领先的半导体解决方案供应商萨瑞电子株式会社(TSE:6723)今天宣布推出三款基于RX65N、RX130和RX231微控制器(MCU)的新型目标板,旨在帮助工程师快速启动其家电、楼宇和工业自动化应用的设计。目标板定价在30美元以下,从而降低了价格门槛,可以让更多系统设计人员从瑞萨电子众多的32位RX MCU系列产品的优势中获益。 RX目标板为嵌入式设计人员提供了一个便宜的切入点,用于开始评估,原型设计和产品开发。每个目标板套件都具有片上调试工具,无需购买额外工具即可进行应用设计。通孔引脚头提供了所有MCU信号引脚的接口,使客户可以轻松连接到标准面包板以实现快速原型设计。 瑞萨电子
[嵌入式]
瑞萨推出低成本目标板以支持快速增长的RX系列32位<font color='red'>MCU</font>产品线
基于STM32芯片三路互补PWM输出的设计实现
硬件:Stm32f103c8t6最小系统。 开发平台:MDK-Arm。 目的:使用Stm32高级定时器TIM1。配置中心对齐模式输出三路互补PWM。 (1)Stm32的高级定时器: Stm32f103c8t6有一个高级定时器TIM1。STM32的高级定时器比通用定时器增加了可编程死区互补输出,重复计数器,带刹车(短路)功能。这些功能为电机控制提供了便利。其中重复计数器下篇文章单独讲。 TIM1的IO分配: (2)高级定时器框图分析: 图1 图1高级定时器框图,可分为6部分,①时钟源选择,②控制器,③时基单元,④输入捕获,⑤输出比较,⑥刹车断路。 ①时钟选择: 时钟源有:内部时钟(CK_INT),外部时钟模式1,外部时钟模式
[单片机]
基于<font color='red'>STM32</font>芯片三路互补PWM输出的设计实现
STM32-自学笔记(18.独立看门狗,使用到的库函数)
1.IWDG_SetPrescaler 函数原型:void IWDG_SetPrescaler(u8 IWDG_Prescaler) 功能:设置IWDG预分频值 参数:IWDG_Prescaler:IWDG预分频值 参数描述:IWDG_Prescaler IWDG_Prescaler参数 描述 IWDG_Prescaler参数 描述 IWDG_Prescaler_4 设置IWDG预分频值为4 IWDG_Prescaler_64 设置IWDG预分频值为64 IWDG_Prescaler_8 设置IWDG预分频值为8 IWDG_Prescaler_128 设置IWDG预分频值为128 IWDG_Prescaler_16 设置
[单片机]
【GD32 MCU 移植教程】7、从 GD32F10x 移植到 GD32E103
1. 前言 本应用笔记旨在帮助您快速将基于 GD32F10x 2.0 版本及以上固件库开发的应用程序从GD32F10x 系列微控制器移植到 GD32E103 系列微控制器。GD32E103 和 GD32F10x 系列相比,考虑软硬件兼容性,从 Flash 和 SRAM 容量,包括外设模块的增强性能上来看,E103 最接近 F105。 开始前您需要安装 GD32E103 关于 KEIL 或 IAR 的插件,在工程选项的器件条目中选择GD32E103 对应型号,添加 GD32E103 的 Flash 下载算法。 为了更好的利用本应用笔记中的信息,您需要对 GD32 系列微控制器有比较深刻的了解。您可在 GD32MCU 资料网站 下
[单片机]
【GD32 <font color='red'>MCU</font> 移植教程】7、从 GD32F10x 移植到 GD32E103
小广播
设计资源 培训 开发板 精华推荐

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

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

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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