Xilinx SDK 初学之–API函数笔记(GPIO函数)
初学Xilinx SDK的开发,下面记录使用到的API函数及自己的理解。若有误,还请指教。
xgpio函数
1、int XGpio_Initialize(XGpio * InstancePtr, u16 DeviceId)
名称 | 代码 | 解释 |
---|---|---|
函数名 | XGpio_Initialize | 初始化GPIO |
参数1 | XGpio * InstancePtr | 指向GPIO实例的指针 |
参数2 | u16 DeviceId | ID号,自动生成,在xparameters.h文件中定义 |
返回值 | int | XST_SUCCESS/XST_FAILURE |
应用举例:
///////////////////////////////////////////////////////
XGpio LedGpio;
XGpio_Initialize(&LedGpio,XPAR_LED_DEVICE_ID) ;
///////////////////////////////////////////////////////
2、void XGpio_SetDataDirection(XGpio *InstancePtr, unsigned Channel,u32 DirectionMask)
名称 | 代码 | 解释 |
---|---|---|
函数名 | XGpio_SetDataDirection | 设置GPIO为输入/输出 |
参数1 | XGpio * InstancePtr | 指向GPIO实例的指针 |
参数2 | unsigned Channel | 待设置GPIO的通道(Vivado中设置gpio IP时的设置通道,为1或2) |
参数3 | u32 DirectionMask | 方向设置。0:output;1:input |
返回值 | void |
应用举例:
///////////////////////////////////////////////////////
XGpio LedGpio;
XGpio_SetDataDirection(&LedGpio,1,0x00000000) ;
///////////////////////////////////////////////////////
说明:关于参数Channel,在gpio的IP设置时有如下配置:
配置为上半部分的GPIO,则Channel为1;若设置下半部分配置的GPIO 2,则Channel为2;
3、u32 XGpio_DiscreteRead(XGpio * InstancePtr, unsigned Channel)
名称 | 代码 | 解释 |
---|---|---|
函数名 | XGpio_DiscreteRead | 读取GPIO的值 |
参数1 | XGpio * InstancePtr | 指向GPIO实例的指针 |
参数2 | unsigned Channel | 通道号,同上一函数 |
返回值 | u32 | 最多32位的实际值 |
应用举例:
///////////////////////////////////////////////////////
XGpio BtnGpio;
int btn_val ;
btn_val =XGpio_DiscreteRead(&BtnGpio,1) ;
///////////////////////////////////////////////////////
3、void XGpio_DiscreteWrite(XGpio * InstancePtr, unsigned Channel, u32 Data)
名称 | 代码 | 解释 |
---|---|---|
函数名 | XGpio_DiscreteWrite | 写GPIO |
参数1 | XGpio * InstancePtr | 指向GPIO实例的指针 |
参数2 | unsigned Channel | 通道号,同上一函数 |
参数3 | u32 Data | 需要写的值 |
返回值 | void |
应用举例:
///////////////////////////////////////////////////////
XGpio LedGpio;
int led_val = 0xfffffff2;
XGpio_DiscreteWrite(&LedGpio,1,led_val) ;
///////////////////////////////////////////////////////
其他与GPIO相关的函数使用与以上函数大同小异,参考参数含义即可理解。