stm32-GPIO 模式配置如何?

发布时间:2023-03-24  

作为嵌入式系统的一种重要硬件平台,STM32 微控制器在许多应用场合都有广泛的应用。GPIO(General Purpose Input Output)即通用输入输出口,是 STM32 微控制器中非常重要的一个外设模块。在 STM32 的开发中,通过 GPIO 模式配置,可以实现多种不同外设的输入输出功能,如 LED 灯、按键、电机等。本文就来详细介绍 STM32 的 GPIO 模式配置。


首先,STM32 的 GPIO 可以分为四个部分,即 A、B、C、D 四个端口,每个端口包括多个 GPIO 引脚。我们可以根据实际需要,选择相应的 GPIO 引脚来实现输入输出的功能。


其次,在进行 GPIO 的模式配置之前,我们需要了解 GPIO 总线的基本工作原理。GPIO 可以通过软件设置为输入和输出模式,同时也可以设置 GPIO 的速率、下拉和上拉电阻等。GPIO 在输入模式下,可以检测输入信号或者检测输入信号变化;在输出模式下,可以通过软件控制输出电压高低。

接下来,我们看一下 STM32-GPIO 的模式配置方法:


1. 首先,需要开启 GPIO 外设时钟,一般使用如下代码:


```

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB | RCC_APB2Periph_GPIOC | RCC_APB2Periph_GPIOD, ENABLE);

```


这段代码会将 A、B、C、D 四个端口的 GPIO 外设时钟打开。


2. 然后,将 GPIO 设置为输入或输出模式:


```

GPIO_InitTypeDef GPIO_InitStructure;

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0; // 选择 GPIO 引脚

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; // 设置 GPIO 输出模式

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; // 设置 GPIO 速率

GPIO_Init(GPIOA,&GPIO_InitStructure); // 对 GPIO 进行配置

```


以上代码中,GPIO_InitStructure 是 GPIO 设备的配置结构体,其中 GPIO_Pin 是对应的引脚编号,GPIO_Mode 是选择输入或输出模式,GPIO_Speed 是设置 GPIO 速率。


在设置输入模式时,可以选择上拉或下拉模式。下拉模式是指当引脚未接到高位时,其输出电平会被拉低;而上拉模式则相反,引脚未接到低位时,输出电平被拉高。


3. 最后,根据具体需求,对 GPIO 进行操作。


例如,对 GPIO 设置输出电平:


```

GPIO_SetBits(GPIOA, GPIO_Pin_0); // 将 GPIO 引脚设置为高电平

GPIO_ResetBits(GPIOA, GPIO_Pin_0); // 将 GPIO 引脚设置为低电平

```


总之,STM32-GPIO 模式配置是非常重要和基础的一项开发任务。通过了解和掌握 GPIO 的基本工作原理,以及使用相应的代码库,我们能够实现多种不同外设的输入输出功能。在 STM32 的实际开发中, GPIO 的灵活应用是非常关键的一部分。


文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

相关文章

    内置外设使用的时候,就叫做复用。 哪些端口可以复用为什么,这个查表就可以了 2,如何进行端口复用? 比如AF1要复用到TIM1;通过设置AFRL寄存器和AFRH寄存器就可以AF1----->TIM1......
    能的话就选择ENABLE将其复制粘贴下来 完成第二个入口参数,完成GPIO的时钟使能函数的调用: 4, 在led.c中如何配置GPIO函数:如,配置D组IO (1)输入函数GPIO_Init(); ,用上......
    相应的处理 } else { // GPIO引脚为低电平 // 进行相应的处理 } 以上代码展示了如何读取GPIOA口第0个引脚的电平状态,并根据电平进行相应的处理。 总结一下,要读取STM32IO口输......
    = GPIO_Pin_2;//选择IO PE2 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;//设置成上拉输入 GPIO_Init(GPIOE, &......
    STM32的几种输入模式以及外部中断的配置;  要求:将连接按键的IO口配置为上拉输入,按键一端接IO,一端接地,即当按键按下后,该IO口会产生一个下降沿,触发下降沿中断。   问题:将相应的IO......
    STM32 GPIO工作原理及LED电路原理;一、STM32F103ZET6介绍1. STM32实物图: 2. STM32引脚分布图: STM32F103ZET6:共144个引脚,7组IO......
    =GPIO_Pin_0;          //选择你要设置IO   GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;   //设置......
    师。 GPIO,通用输入输出口,51单片机P0、P1、P2、P3每组从0-7共8个IOSTM32单片机,分为GPIOA-G,每组0-15共16个IO,51单片机的IO口比较省心,要么置零要么置1......
    空比。因此,想要控制PWM的输出波形,重要的就是如何设置ARR与CCRx这两个寄存器的值了。 STM32定时器中断 为了便于理解接下来关于PWM应用的内容,先插一段定时器中断的知识。 产生......
    = GPIO_Pin_2;//选择IO PE2 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;//设置成上拉输入 GPIO_Init(GPIOE......

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>