1. 程式人生 > >xilinx SDK開發 GPIO使用API總結

xilinx SDK開發 GPIO使用API總結

轉: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);