STM32 GPIO之二——按键例程 学习总结

本文详细介绍了STM32 GPIO的8种工作模式,包括4种输入模式和4种输出模式,并通过一个按键控制LED亮灭的实例,阐述了在实际开发中如何配置和使用GPIO。在输入模式中提到了上拉、下拉、浮空和模拟输入,输出模式则涵盖推挽、开漏以及复用模式。最后,文章提供了具体的开发板原理图和测试代码,帮助读者深入理解STM32 GPIO操作。
摘要由CSDN通过智能技术生成

一. GPIO的8种工作模式

1.4种输入模式:

(1)上拉输入模式(GPIO_Mode_IPU):在默认状态下(GPIO引脚无输入),读取得的GPIO引脚数据为1,高电平。

(2)下拉输入模式(GPIO_Mode_IPD):在默认状态下(GPIO引脚无输入),读取得的GPIO引脚数据为0,低电平。

(3)浮空输入模式(GPIO_Mode_IN_FLOATING):一般把这种模式用于标准的通信协议如I²C、USART的接收端。

(4)模拟输入模式(GPIO_Mode_AIN):使用ADC外设时,必须设置为模拟输入模式。

2.4种输出模式:

(1)推挽输出模式(GPIO_Mode_OUT_PP):一般应用在输出电平为0到3.3伏的场合。

(2)开漏输出模式(GPIO_Mode_OUT_OD):一般应用在电平不匹配的场合。

(3)复用推挽输出模式:如GPIO的引脚用作串口的输出。

(4)复用开漏输出模式:如在IC、SMBUS这些需要线与功能的复用场合。

二、开发板原理图如下:


三、测试代码:

实现功能:LED1亮,按下按键时LED1灭,再按下按键时LED1亮,如此循环。



/*led.c*/
#include "led.h"

/*配置LED用到的I/O口*/

void LED_GPIO_Config(void)
{
	/*定义一个GPIO_InitTypeDef类型的结构体*/
   GPIO_InitTypeDef GPIO_InitStructure;
	
	/*开启GPIOC的外设时钟*/
	 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);
	 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD,ENABLE);
	
	/*选择要控制的GPIO引脚*/
	 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3 | GPIO_Pin_6 | GPIO_Pin_5;
	
	/*设置引脚模式为通用推挽输出*/
	 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
	
	/*设置引脚速率为50MHz*/
	 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_5
### 回答1: s32ds pin_mux:pinsettings 没有设置pin开漏输出。 开漏输出是指在数字电路中,输出信号可以通过开关管将电平拉低,而不能将电平拉高。在S32DS软件中,pin_mux:pinsettings是用来设置芯片引脚的配置,包括输入输出模式、电平状态等。然而,在给定的pinsettings中没有设置引脚为开漏输出模式。 开漏输出模式常用于驱动外部电路,例如与其他逻辑电路或器件之间的连接。开漏输出具有较高的电平驱动能力和更好的电压适应性,可用于驱动负载较重的电路。此外,通过开漏输出,可以实现多路输出的连接方式,从而实现更灵活的应用。 如果需要将具体的引脚设置为开漏输出模式,可以通过修改S32DS软件中的pin_mux:pinsettings进行配置。具体方法是找到对应引脚的配置选项,在设置中选择开漏输出模式。然后,重新生成代码并下载到目标芯片上,即可使相应引脚在运行时以开漏输出模式工作。 需要注意的是,在设计中使用开漏输出模式时要确保负载和电压适应性的匹配,以避免芯片和外部电路之间的电流问题和电压冲突。因此,在配置引脚为开漏输出模式之前,需要仔细考虑相关电路和信号的工作要求。 ### 回答2: s32ds pin_mux:pinsettings 没有设置pin开漏输出。开漏输出是指在特定的配置下,输出引脚可以被拉低,而且输出电平为高电平状态时经过MOSFET的驱动。一般情况下,当引脚为输出模式时,引脚会驱动一个外部集成电路或者其他设备。 在s32ds的pin_mux:pinsettings中,没有设置pin开漏输出意味着当引脚为输出模式时,其输出电平不能为高电平状态,只能是低电平状态。这可能是因为开漏输出不适用于当前的应用需求,或者其它原因导致没有设置pin为开漏输出。 在某些应用中,开漏输出可以用来驱动电流较高的负载或者需要共享总线的设备。如果应用需要驱动这样的负载或者需要在总线上共享信号,可能需要将pin设置为开漏输出模式。 要设置pin为开漏输出模式,可以在s32ds的pin_mux:pinsettings中进行相应的配置。具体的配置方式可能因芯片型号和使用的软件版本而有所不同,建议查阅相关的技术文档或者参考开发工具的使用手册来了解如何进行pin_mux:pinsettings的配置。 ### 回答3: 在S32DS开发环境的pin_mux:pinsettings中,设置pin开漏输出(open drain)是指将引脚的输出模式设置为开漏输出模式。 开漏输出模式是指将GPIO引脚的输出状态设置为只能拉低,而无法主动拉高的一种输出状态。在该模式下,输出引脚可以连接到其他的逻辑电路中,实现电平的双向传输。通常在与其他设备或电路进行通信时,可以使用开漏输出模式,通过外部上拉电阻将引脚拉高,实现与其他设备的通信。 但是在pin_mux:pinsettings中没有设置pin开漏输出的话,那么引脚的输出模式可能是默认的推挽输出模式(push-pull)。在推挽输出模式下,GPIO引脚可以主动驱动高电平和低电平。当需要与其他设备进行通信时,可能需要额外的电路来实现开漏输出。 为了设置pin为开漏输出模式,需要在pin_mux:pinsettings中进行相应的设置。具体的设置方法可能因不同的S32DS版本和开发板而有所不同,可以参考相关的文档或参考例程。 总之,如果在pin_mux:pinsettings中没有设置pin开漏输出模式,那么引脚的输出模式可能是默认的推挽输出模式。如果需要将引脚的输出模式设置为开漏输出,需要进行相应的设置。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值