GPIO常用函数
1、XGpio_Config *XGpio_LookupConfig(u16 DeviceId)
功能:根据输入设备ID查找该设备。
输入:设备ID。
输出:若找到该设备ID则返回一个指向设备配置的XGpio_Config型指针。若没有找到则返回NULL。
2、int XGpio_Initialize(XGpio * InstancePtr, u16 DeviceId)
功能:初始化XGpio实例。
参数1:指向设备实例的指针。
参数2:设备ID。
返回:成功返回XST_SUCCESS,失败返回XST_DEVICE_NOT_FOUND。
上面两个函数不能单独的完成初始化,实际上XGpio_CfgInitialize函数里调用了这两个函数,一起完成设备初始化。
3、int XGpio_CfgInitialize(XGpio * InstancePtr, XGpio_Config * Config,u32 EffectiveAddr)
功能:根据输入的配置信息初始化XGpio实例。
参数1:XGpio实例指针。
参数2:详细的配置信息。
参数3:虚拟地址空间中的设备基地址。
返回:成功返回XST_SUCCESS。
4、void XGpio_SetDataDirection(XGpio * InstancePtr, unsigned Channel,u32 DirectionMask)
功能:设置各个通道的输入输出方向。
参数1:指向设备实例的指针。
参数2:准备操作的GPIO的通道(Vivado中设置gpio IP时的设置通道,为1或2)。如下图中的通道1,2。
参数3:决定输入输出方向的掩码,1位输入0为输出。
5、u32 XGpio_GetDataDirection(XGpio *InstancePtr, unsigned Channel)
功能:得到各个IO的输入输出配置情况。
参数1:设备实例指针。
参数2:通道。
返回:IO方向配置情况,0输出,1输入。
6、u32 XGpio_DiscreteRead(XGpio * InstancePtr, unsigned Channel)
功能:读当前IO状态。
参数1:设备实例指针。
参数2:通道。
返回:IO当前值。
7、void XGpio_DiscreteWrite(XGpio * InstancePtr, unsigned Channel, u32 Data)
功能:向输入设备实例写入输入数据。
参数1:设备实例。
参数2:通道。
参数3:要写入的数据。
返回: void。
---------------------------------------------------使用实例---------------------------------------------------------------------------------------
//1、定义设备。
XGpio BTNInst;
//2、初始化按键
status = XGpio_Initialize(&BTNInst, BTNS_DEVICE_ID);
//3、 设置按键IO的方向为输入
XGpio_SetDataDirection(&BTNInst, 1, 0xF);