芯片内部支持8个按键;支持每个按键状态查询;支持每个按键输入滤波,滤波时间为24ms ; 支持每个按键可单独屏蔽中断。GPIO(general-purpose io port通用IO口), 在嵌入式系统中许多结构简单的外部设备/电路,对这些设备会电路就需要CPU提供控制手段。这样的设备只要有三极管控制实现开/关两种状态,如灯亮或灭。对这些外设的控制,传统的串行口或并行口都不合适,这时候也微控制芯片上会提供一个“通用的可编程IO口",即GPIO口。接口至少需要2个寄出器,即”通用IO控制寄存器“与”通用IO数据寄存器“。数据寄存器的各位都直接引导芯片的外部,这样寄存器中每一位的流通方向,就可以通过控制寄存器中的对应的位进行独立的设置。
//UART_rx口模式寄存器通过bitband映射到的地址
//UART_rx口数据寄存器通过bitband映射到的地址
//UART_tx口模式寄存器通过bitband映射到的地址
//UART_tx口数据寄存器通过bitband映射到的地址
#include <stdio.h>
#define UART_rxgpio_mode 0x50000000
#define UART_rxgpio_data 0x50000004
#define UART_txgpio_mode 0x50000008
#define UART_txgpio_data 0x5000000C
//适合所有GPIO口的通用的数据结构
struct gpio_t
{
int *gpio_data_out;//gpio数据寄存器,用来输出数据
int *gpio_data_in;//gpio数据寄存器,用来输入数据
int *gpio_mode; //gpio模式寄存器,用来控制io口是输入还是输出的。
void (*out_