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