轉:https://blog.csdn.net/mayaohui1994/article/details/79371567
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);