GPIO工作必会

目录

GPIO的作用

1、作为输出引脚,控制LED灯的亮灭

GPIO配置

 GPIO输出流程

2、输入中断信号

TBD--外设等复杂操作

输入输出模式

1、4种输入模式

施密特触发器:

2、4种输出模式

操作GPIO


GPIO的作用

General Purpose Input Output,通用输入输出端口,通过写软件来控制

1、作为输出引脚,控制LED灯的亮灭

GPIO电平的控制:最终变成了向这个GPIO的硬件寄存器写入数据,硬件的状态会跟随寄存器的数据改变而改变。

GPIO配置

伪代码:
配置某一个IO口为通用推挽输出模式所需要的GPIO寄存器
{
	1.对应位的MODER配置为01——————————通用输出
	2.对应位的OTYPER配置为0——————————推挽输出
	3.对应位的OSPEEDR配置为(01)—————25Mhz中速(这个不一定,按照自己的需求)
	4.对应位的PUPDR配置为00——————————无上下拉
	5.对应位的ODR    配置为0——————————输出低电平; 配置为1——————————输出高电平
}

 GPIO输出流程

  1. 启用GPIO时钟:首先,需要启用相应GPIO端口的时钟,以便能够对GPIO进行配置和控制。通过在RCC寄存器中启用相应的GPIO时钟。

  2. 配置GPIO引脚:使用GPIO_Init()函数配置GPIO引脚的模式(输出模式)、速度、上拉/下拉等参数。通常需要指定引脚号、模式、速度、上拉/下拉方式等。

  3. 控制GPIO输出:使用HAL_GPIO_WritePin()函数控制GPIO的输出电平,可以将引脚设置为高电平(GPIO_PIN_SET)或低电平(GPIO_PIN_RESET)。

  4. 控制输出电平:根据应用需求,可以定时或根据条件更改GPIO引脚的输出电平,从而控制连接的外部设备或器件。

// 启用GPIO时钟
__HAL_RCC_GPIOB_CLK_ENABLE();

// 配置GPIO引脚
GPIO_InitTypeDef GPIO_InitStruct;
GPIO_InitStruct.Pin = GPIO_PIN_0; // 配置为输出引脚
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; // 推挽输出模式
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; // 低速
HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);

// 控制GPIO输出
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0, GPIO_PIN_SET); // 设置引脚为高电平

用于将GPIO的输出状态与硬件寄存器的特定位相关联,以实现更底层的控制。可能需要使用指针和位操作来确切地控制寄存器的位。这个操作通常是在需要直接操作硬件寄存器的情况下进行,以执行更精细的控制或配置。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值