1-4 GPIO输入模式(ARM-GD32)

输入结构

浮空输入模式:

上拉输入:

上面的电路浮空输入的状态是不确定的故需要通过设置上拉电阻的方式将电平设置为高电平,也就是确定的状态,此时下拉电阻处于关闭的状态,当按键没有按下的时候,处于浮空的状态默认是高电平,当按键按下的时候处于低电平,经过施密特触发器将电平信号转换为数字信号0存储到输入状态寄存器中,通过读取输入状态寄存器的值来获取电平状态(解决浮空输入模式下电平不确定的问题)。

下拉输入:

按键驱动电路,按键连接到限流电阻,然后连接到VCC,使用下拉输入的模式,将驱动单元的下拉电阻打开,当按键没有按下的时候端口处于低电平状态,当按键按下的时候电流从外部流向单片机的内部,会检测为高电平,(弱上拉和弱下拉)

浮空输入检测按键要在上拉和下拉的作用下加上上拉电阻和下拉电阻,让电路在悬空的状态写有一个明确的电平(上拉电阻使用的是2-10k的阻值)。

使用配置寄存器的方式驱动按键检测

电路分析:按键的一端连接到GND一端连接上拉电阻接3.3V电源,有一个R53的限流电阻用于保护IO口,C44使用了一个100nf的电容,滤波电容在一定程度上可以实现硬件消除抖动的效果,当按键没有被按下时端口的电平被4K的上拉电阻拉到高电平的状态(此时处于高阻状态),按键按下的时候电流从上拉电阻流线GND,此时端口为低电平。

寄存器配置:

ARMGD32

  • GPIOA 基地址:0x4001 0800
  • GPIOB 基地址:0x4001 0C00
  • GPIOC 基地址:0x4001 1000
  • GPIOD 基地址:0x4001 1400
  • GPIOE 基地址:0x4001 1800
  • GPIOF 基地址:0x4001 1C00
  • GPIOG 基地址:0x4001 2000
  • AFIO 基地址:0x4001 0000

KEY1对应的端口号为PA0这个时候找到端口对应的寄存器

注1:使用8424法判断对应的数值为4

读取端口电平状态寄存器

代码实现

cpp 复制代码
#define  GPIOA_OCTL (*(uint32_t *)(0x40010800 + 0x0C))
// 外设总线控制,时钟使能控制寄存器
#define  RCU_APB2EN (*(uint32_t *)(0x40021000 + 0x18))
// 按键检测寄存器控制
#define GPIOA_CTL0 (*(uint32_t *)(0x40010800 + 0x00))
#define GPIOA_ISTAT (*(uint32_t *)(0x40010800 + 0x08))

static void Delay(uint32_t count)
{
	while (count--);
}

int main(void)
{
	/*使能GPIO的时钟*/
	RCU_APB2EN |= 1 << 2;
	/*配置PA8为推挽输出模式*/
	GPIOA_CTL1 = 0x44444442;
	/*配置PA0为浮空输入模式*/
	GPIOA_CTL0 = 0x44444444;
	while (1)
	{
		while((GPIOA_ISTAT & (1 << 0)) == 0){
		    GPIOA_OCTL |= 1 << 8;  //00000000 00000000 00000001 00000000	
		}
		GPIOA_OCTL &= ~(1 << 8); //11111111 11111111 11111110 11111111
		
		/*
		   1 < 8 位是一个32位数据,对于ARM32位单片机平台
		   常数默认为uint32位
		*/
		
	}
}

当按键按下的时候地点亮发光的led灯,当按键没有被按下的时候LED灯处于熄灭状态

相关推荐
应用市场8 分钟前
STM32电池管理系统(BMS):电量统计原理与实现
stm32·单片机·嵌入式硬件
cici1587442 分钟前
基于STM32G4系列MCU的3kW数字LLC电源控制
stm32·单片机·嵌入式硬件
平凡灵感码头1 小时前
基于STM32的智能门锁系统 经典开局,先来个点灯
stm32·单片机·嵌入式硬件
可爱的鸡仔1 小时前
STM32------存储器映像
stm32·单片机·嵌入式硬件
清风6666661 小时前
基于单片机的自动换挡式高精度数字电压表设计
单片机·嵌入式硬件·毕业设计·课程设计·期末大作业
HXQ_晴天2 小时前
STM32中MX_TIM2_Init函数和HAL_TIM_Base_MspInit函数区别
stm32·单片机·嵌入式硬件
HXQ_晴天2 小时前
STM32实现呼吸灯效果原理
stm32·单片机·嵌入式硬件
清风6666663 小时前
基于单片机的机房环境监测系统设计与实现
单片机·嵌入式硬件·毕业设计·课程设计·期末大作业
江苏学蠡信息科技有限公司3 小时前
STM32 USART框图简介
stm32·单片机·嵌入式硬件
青牛科技-Allen4 小时前
7个常见的DFM问题及其对PCB制造的影响
开发语言·单片机·制造·usb麦克风·立体声录音笔