STM32GPIO

本文介绍了STM32F4的GPIO接口,包括其7个端口和工作模式(如浮空输入、上拉/下拉输入、模拟输入、开漏/推挽输出)。通过示例展示了如何使用GPIO控制LED灯的亮灭。

基本概念

GPIO:通用的输入输出口,它被分为分为7个端口,分别是GPIOA、GPIOB、GPIOC、GPIOD、GPIOE、GPIOF、GPIOG,每个端口拥有16个引脚,分别是Px0~Px15,其中x代表不同的端口号(如端口A,它的16个引脚就是PA0~PA15)。

基本结构 

 GPIO的工作模式

模式名称性质特征
浮空输入输入可读取引脚电平,若引脚悬空,则电平不确定
上拉输入输入可读取引脚电平,内部连接上拉电阻,悬空时默认⾼电平
下拉输入输入可读取引脚电平,内部连接下拉电阻,悬空时默认低电平
模拟输⼊输入GPIO⽆效,引脚直接接⼊其他外设
开漏输出输出引脚只输出低电平
推挽输出输出引脚即可以输出低电平、还可以输出⾼电平
复⽤推挽输出输出由⽚上外设控制,输出⾼低电平
复⽤开漏输出输出由⽚上外设控制,只输出低电平

浮空输入

上拉输入

 下拉输入

 模拟输入

 开漏输出

推挽输出

开漏复用和推完复用输出

 实践-点亮LED灯

LED灯原理图

工程代码

#include "stm32f4xx.h"                  // Device header

int main(void)
{
	/*初始化时钟使能*/
	RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOF,ENABLE);
	
	
	/*定义LED灯结构体*/
	GPIO_InitTypeDef GPIO_InitStruct;
	
	/*设置输出引脚:由原理图可得控制LED0的引脚是PF9*/
	GPIO_InitStruct.GPIO_Pin = GPIO_Pin_9;
	
	/*将引脚的操作模式定义为输出*/
	GPIO_InitStruct.GPIO_Mode = GPIO_Mode_OUT;
	
	/*确定输出类型:PP是推挽,OD是开漏*/
	GPIO_InitStruct.GPIO_OType = GPIO_OType_PP;

	/*设置引脚的响应速度*/
    GPIO_InitStruct.GPIO_Speed = GPIO_High_Speed;
	
	
	/*初始化点灯结构体(目标端口,目标结构体)*/
	GPIO_Init(GPIOF,&GPIO_InitStruct);
	
	while(1)
	{
		int num=500000;
		while(num--)
			
		/*设置GPIOF的9号引脚为高电平(1),灯灭*/
		GPIO_SetBits(GPIOF,GPIO_Pin_9);
		
		num=500000;
		while(num--)
		/*设置GPIOF的9号引脚为低电平(0),灯亮*/
		GPIO_ResetBits(GPIOF,GPIO_Pin_9);
	}
	
}

 运行结果:LED0会一闪一灭交替进行

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值