一、头文件:
#ifndef __MK60_GPIO_H__
#define __MK60_GPIO_H__
#include "MK60_gpio_cfg.h"
/*
* 定义管脚方向
*/
typedef enum GPIO_CFG
{
//这里的值不能改!!!
GPI = 0, //定义管脚输入方向 GPIOx_PDDRn里,0表示输入,1表示输出
GPO = 1, //定义管脚输出方向
} GPIO_CFG;
#define HIGH 1u
#define LOW 0u
extern GPIO_MemMapPtr GPIOX[PTX_MAX];
#define GPIOX_BASE(PTxn) GPIOX[PTX(PTxn)] //GPIO模块的地址
/****************************外部使用****************************/
extern void gpio_init (PTXn_e, GPIO_CFG, uint8 data); //初始化gpio
extern void gpio_ddr (PTXn_e, GPIO_CFG); //设置引脚数据方向
extern void gpio_set (PTXn_e, uint8 data); //设置引脚状态
extern void gpio_turn (PTXn_e); //反转引脚状态
extern uint8 gpio_get (PTXn_e); //读取引脚状态
//如下 4个 函数 的 PTxn 只能是 宏定义,不能是 变量
#define GPIO_SET(PTxn,data) (PTXn_T(PTxn,OUT)= (data)) //设置输出电平
#define GPIO_TURN(PTxn) (PTXn_T(PTxn,T)= 1) //翻转输出电平
#define GPIO_GET(PTxn) (PTXn_T(PTxn,IN)) //读取引脚输入状态
#define GPIO_DDR(PTxn,ddr) (PTXn_T(PTxn,DDR) = ddr) //输入输出状态
//如下 函数 的 PTxn 可以是 宏定义,也可以是 变量
//