【学习目的】
1、掌握GPIO的输入的寄存器配置
2、检测GPIO做为按键检测,其寄存器的值的获取。
3、掌握按键状态的获取
【学习教材】
1、GD32H737_757_759_User_Manual_Rev1.1_CN.pdf (gd32mcu.com)
2、《GD32H759EVAL评估板使用指南》
3、GD32H7xx示例包。
【GPIO寄存器】
在GPIO通用输入中,需要先配置GPIO为输入模式,通过配置端口控制寄存器(GPIOx_CTL)为0b00,配置为普通的输入,以及配置端口上拉/下拉寄存器(GPIOx_PUD)来实现对GPIO输入的配置工作。
要查看原理图,板载的用户按键原理图如下:
image.png
根据原理图所示,按键为PF8,已经通过10K的电阻上拉到了VCC3.3V,所以在配置PUD寄存器为悬空就行了。
其初始化的代码如下:
  1. GPIOF_CTL &= ~((uint32_t)0x03<<16)//清PF8位为00
  2. GPIOF_PUD &= ~(uint32_t)0x01<<8

配置好后我们如果需要需要获取其IO的电平状态,就需要用到端口输入状态寄存器(GPIOx_ISTAT)
返回的状态为:ret = (GPIOF_ISTAT>>8) & 0x01;
【总结】
GPIO的输入检测,我们只要配两个寄存器GPIOy_CTL、GPIOy_PUD,然后获取GPIOx_ISTAT指定位的值就可以实现其功能了。