原创 MCU之GPIO到底是什么?结构和例程详解

2023-10-4 10:46 1099 3 3 分类: 物联网 文集: 学习分享

GPIO,全称General-Purpose IO ports,即通用IO口,是微控制器芯片上的一种可编程IO接口。

在嵌入式系统中,往往存在大量结构简单但数量众多的外部设备或电路。这些设备或电路,有的是需要CPU为之提供控制手段,有的是需要被CPU用作输入信号。而且,许多这样的设备或电路只要求一位,即只要有开/关两种状态就够了,比如灯亮与灭。对这些设备或电路的控制,使用传统的串行口或并行口都不合适。

因此,在微控制器芯片上,一般会提供一个GPIO接口,以实现对这些设备或电路的有效控制。GPIO接口至少有两个寄存器,即通用IO控制寄存器与通用IO数据寄存器。数据寄存器的各位都直接引到芯片外部,而对这种寄存器中每一位的作用,即每一位的信号流通方向,则可以通过控制寄存器中对应位独立的加以设置。

以下是一个GPIO接口的简单例程:

c复制代码
// 设定GPIO输出引脚电平为高电平
GPIO_SetBits(GPIOx, GPIO_Piny);
// 设定GPIO输出引脚电平为低电平
GPIO_ResetBits(GPIOx, GPIO_Piny);
// 检查GPIO输入引脚的电平状态
if (GPIO_ReadInputDataBit(GPIOx, GPIO_Piny) == Bit_RESET)
{
// 引脚电平为低电平
}
else
{
// 引脚电平为高电平
}

在这个例程中,GPIOx代表的是指定的GPIO端口,GPIO_Piny则代表具体的引脚。在实际应用中,需要根据硬件的配置和应用需求来设定具体的端口和引脚。

作者: 丙丁先生, 来源:面包板社区

链接: https://mbb.eet-china.com/blog/uid-me-3996156.html

版权声明:本文为博主原创,未经本人允许,禁止转载!

PARTNER CONTENT

文章评论1条评论)

登录后参与讨论

丙丁先生 2024-5-8 13:25

入门文档,大佬可略
相关推荐阅读
丙丁先生 2025-02-13 08:43
论Deepseek的未来
Deepseek是一家在中国AI行业中处于领先地位的公司,其产品涵盖了语音识别、自然语言处理、计算机视觉等多个领域。Deepseek的技术实力和创新能力在AI行业中备受认可,其发展前景也非常广阔。 ...
丙丁先生 2025-02-02 10:53
P3PU |= 0x20;
1. 功能分析    在许多基于51单片机或者其他类似架构的代码中,`P3PU |= 0x20;`这行代码通常是用于设置`P3`端口(假设这里是`P3`端口)的某个引脚的上拉电阻使...
丙丁先生 2025-01-26 12:37
MYi0002V0405_MotorBoard_V1.1测评第一集英文说明
以下测试项目的编号和名称: 1. 外部复位 NRST 引脚测试    说明: 这个测试项目用于验证设备的外部复位功能是否能够通过 NRST 引脚正常触发。这涉及到硬件复位机制的检...
丙丁先生 2025-01-26 11:23
metanergy MYi0002v0405_MotorBoard_V1.1双电阻代码片段解析
/* =================================================================================================...
丙丁先生 2025-01-21 12:10
聊聊RISC-V MCU技术
嘿,咱来聊聊RISC-V MCU技术哈。 这RISC-V MCU技术呢,简单来说就是基于一个叫RISC-V的指令集架构做出的微控制器技术。RISC-V这个啊,2010年的时候,是加州大学伯克利分校的...
我要评论
1
3
关闭 站长推荐上一条 /1 下一条