STM32单片机的GPIO输入、输出模式与配置方法

发布者:喜悦的38号最新更新时间:2024-09-02 来源: elecfans关键字:STM32  单片机  GPIO输入  输出模式  配置方法 手机看文章 扫描二维码
随时随地手机看文章

STM32 单片机是一款高性能、低功耗的 32 位微控制器,具有强大的计算能力、灵活的外设模块和实现微控制器应用所需的社区支持。在单片机应用中,GPIO 输入输出模式是必不可少的硬件接口之一。本文将介绍 STM32 单片机的 GPIO 输入、输出模式与配置方法。


一、 STM32 单片机 GPIO 简介 

GPIO ,全称 General Purpose Input/Output,即通用输入输出口。它是一个通用的数字电平接口,可以极大地扩展单片机的应用范围。GPIO 的主要功能就是承载数据,它是单片机与外部设备或硬件进行数据通讯的桥梁,也是微控制器的重要运行部件之一。

STM32 单片机的 GPIO 端口主要分为以下两种:

1.通用输入/输出端口(GPIO)

通用输入/输出端口又称为通用IO,它可以作为输入口也可以作为输出口。在使用 GPIO 端口时,需要配置相应的 GPIO 模式、速度、上拉或下拉电阻等属性。通用 IO 是最简单的 GPIO 端口,可实现单向或双向的数字信号输入输出。

2.外设输入/输出端口(GPIOx) 

外设输入/输出端口可扩展各种特定 IO 接口,如 I2C、USART、SPI 等,支持多个 Peripherals。


二、 STM32 单片机 GPIO 输入模式 

GPIO 输入模式是 STM32 单片机 GPIO 端口最常使用的模式之一。在 GPIO 输入模式下,STM32 单片机会读取指定 IO 口的电平状态。在 STM32 单片机应用中,使用 GPIO 输入模式时可以实现电平检测、中断响应等功能。

GPIO 输入模式的配置步骤如下:

1.配置 GPIO 端口 

操作方式:根据需要选择输入模式,设置相应输入电路(上拉/下拉电阻)。

2.中断线映射 

操作方式:根据需要选择相应的 EXTI 中断线(0-15)。

3.设置中断优先级 

操作方式:选择中断类别和优先级。

4.中断初始化 

操作方式:在 main()函数里进行初始化操作,包括 GPIO 端口配置、外设输入端口配置、中断线映射以及中断优先级设置等。

5.中断处理函数 

操作方式:编写相应的中断处理函数,在程序被触发时被调用。


三、 STM32 单片机 GPIO 输出模式 

GPIO 输出模式是将单片机内部计算结果通过 GPIO 端口输出到外部,是 STM32 单片机 GPIO 端口输出模式之一。在 STM32 单片机应用中, GPIO 输出模式可实现 led 灯控制、蜂鸣器控制等功能。

GPIO 输出模式的配置步骤如下:

1.配置 GPIO 端口

操作方式:根据需要选择输出模式,设置相应的输出电路(推挽/开漏)

2.GPIO口控制

操作方式:在程序中使用 GPIO 口输出控制指令,控制 GPIO 口输出的电平状态。

3.输出状态初始化 

操作方式:在主函数中进行 GPIO 端口模式、输出状态等设置。

4.输出以及输出状态的修改

操作方式:在程序按照需求变化输出。


四、 总结 

本文介绍 STM32 单片机的 GPIO 输入、输出模式,GPIO 输入模式可实现电平检测、中断响应等功能,而 GPIO 输出模式可用于 led 灯控制、蜂鸣器控制等应用。在使用 GPIO 端口时,我们需要明确标注相应的GPIO口控制,并按照顺序进行初始化和配置。此外,还需注意其他一些因素,如端口映射、中断优先级等,以确保 GPIO 端口的正确使用。


关键字:STM32  单片机  GPIO输入  输出模式  配置方法 引用地址:STM32单片机的GPIO输入、输出模式与配置方法

上一篇:基于STM32的低功耗温湿度采集器的设计与实现
下一篇:STM32开发中的五大嵌入式系统

推荐阅读最新更新时间:2024-09-20 14:29

51单片机闪烁LED灯代码
#include reg52.h typedef unsigned char u8; typedef unsigned int u16; sbit led=P2^0; void delay(u16 i) { while(i--); } void main() { while(1) { led=0; delay(50000); led=1; delay(50000); } }
[单片机]
PIC32MX单片机外设库使用(Ⅰ)- 系统时钟及I/O口基本设置
开发环境:MAPLAB X IDE v1.85 编译器:MPLAB XC 32 1.使用说明: PIC32外设库提供用于设置和控制32位外设的函数和宏。希望使用外设库的应用程序只需在其源文件中包含一个头文件 plib.h 即可访问任意受支持的函数和宏。 备注:plib.h默认安装下的位置 C\ program Files\ Microchip\ xc32\ v1.21\ pic32mx\ include\ plib.h 2.PIC32外设库支持以下外设模块函数: ■系统级函数 ■ 预取高速缓存 ■ DMA ■ 总线矩阵函数 ■ 复位/控制、省电函数 ■ 振荡器、定时器、输入捕捉/输出比较 ■
[单片机]
PIC32MX<font color='red'>单片机</font>外设库使用(Ⅰ)- 系统时钟及I/O口基本设置
STM32 中断配置 自我学习总结
简单记录一下STM32 的中断配置说明! ----第一部分是---中断向量表----- --------这个只是简单参照----不同版本也有些不一样--但是大同小异----自己可以到启动文件---startup_stm32f10x_hd.s中去查找。 ----第二部分---中断优先级配置 static void NVIC_Configuration(void) { NVIC_InitTypeDef NVIC_InitStructure; NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1); //分组 NVIC_InitStructure.NVIC_IRQChannel =
[单片机]
<font color='red'>STM32</font> 中断<font color='red'>配置</font> 自我学习总结
单片机的消抖
机械抖动: 按键按下时,电平的变化并不是马上到位,而是会有一个不稳定的状态过程,再进入电平稳定状态。 软件消抖:如果按键较多,常用软件方法去抖,即检测出键闭合后执行一个延时程序,产生5ms~10ms的延时,让前沿抖动消失后再一次检测键的状态,如果仍保持闭合状态电平,则确认为真正有键按下。当检测到按键释放后,也要给5ms~10ms的延时,待后沿抖动消失后才能转入该键的处理程序 可以在去抖程序里加入检测松手程序例如 if(!key) //检测键盘是否按下 delay()://去抖延时一般是50ms if(!key)//再次检测键盘是否按下 ++: //这里写数码管加 1 程序 while(key);//加入写句,目的是等待k
[单片机]
<font color='red'>单片机</font>的消抖
51单片机串口通信错误的原因
之前发过一篇博文《MCU-51串口通信程序》,程序挺好用的,之后一直把串口当做测试用途,像正在调试USB,用的是CH372,PC通过CH372(USB)发一个字符到单片机,单片机再通过串口回传这个字符,从而验证CH372是否收到字符,结果出现意想不到的错误,错误还挺有规律的。就是发16位字符0A,接收到字符用16位显示是8A;发2A,显示AA;发2B,显示AB,就是最高位(第8位)0变为1了,试验了几个都是一样。 之前老板也是同样的问题(可见这事是多么普遍),不过当时由于不是我的事,就没管。问了一下老板,才知道是晶振的问题,之前板子是用11.0952MHz晶振,现在的板子是12MHz,程序中串口通信也没改预置值,直接就下载了
[单片机]
51<font color='red'>单片机</font>串口通信错误的原因
在Mac OS X中搭建STM32开发环境(2)
在上一篇文章中,我们在OSX中编译了ST-Link2调试工具,并且简单的对其功能进行了测试。在这篇文章中,我们安装交叉编译工具。 提前声明,当我提到“用户文件夹”时,指的就是你的用户文件夹,拿我自己举例子,我的用户名是apple,我的用户文件夹绝对地址就是/Users/apple。如果你的用户名是pear,那你的用户文件夹就是/Users/pear。非常简单,在终端,我们可以直接输入“cd”命令来跳转到自己的用户文件夹。以下所有例子都是以我的用户文件夹做例子的,切记在使用时更换成你自己的用户文件夹。KEEP THIS IN MIND! (二)安装STM32F4交叉编译器 (1)打开网站 https://launchpad.
[单片机]
在Mac OS X中搭建<font color='red'>STM32</font>开发环境(2)
基于AT89C51微控制器实现具有道路学习记忆的机器人设计
随着科学技术的不断发展,机器人技术在航天、海洋、军事、建筑、交通、工业及服务业等领域已经取得广泛的应用和发展。而在一些特殊场合(如航天、深海作业及核工业等领域),以无人探察车、无人排险车及无人运输车等为代表的机器人技术越来越受到关注。为此,笔者设计了一种具有道路记忆功能、使用灵活方便、应用范围较广的轮式移动机器人模型。 该机器人模型以微控制器MCU为核心,先由人对机器人模型按照所要行走的路线进行训练,即让机器人模型记忆该路线(将路线数据存储在存储器中)。以后机器人模型就可沿此路线重复行走。其记忆路线的方式灵活方便,可根据不同的要求和需要对其进行不同的路线训练以完成不同的任务。 该模型可以应用于一些人类不宜活动或较难控制的场
[单片机]
基于AT89C51<font color='red'>微控制器</font>实现具有道路学习记忆的机器人设计
单片机Fault遇到故障了应该怎么办
我们平时的项目,可能会遇到死机的情况,通过在线调试,或者打印消息,可能会发现,怎么进入了 HardFault_Handler 中断呢? 这种“硬故障”是我们常见的一种故障,导致硬故障的原因也有很多。本文针对 Cortex-M3 说说Fault故障相关的内容。 Fault故障种类 Fault故障的种类有很多,拿本文Cortex-M3来说,主要有: HardFault:硬故障 MemManage:存储器管理故障 BusFault:总线故障 UsageFault:用法故障 比如,在 stm32 f10x_it.c源代码中,有这样的中断入口: void HardFault_Handler(void){ /* Go to inf
[单片机]
<font color='red'>单片机</font>Fault遇到故障了应该怎么办
小广播
设计资源 培训 开发板 精华推荐

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

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

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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