米客-显示驱动专家

MicroBlaze之GPIO的API

0
阅读(5869)

MicroBlaze GPIO API函数笔记

函数API

/*

 * Initialization functions in xgpio_sinit.c

 */

int XGpio_Initialize(XGpio *InstancePtr, u16 DeviceId);

XGpio_Config *XGpio_LookupConfig(u16 DeviceId);

这两个API的源函数是在xgpio_sinit.c。


函数名

XGpio_Initialize

输入

1、  XGpio *InstancePtr:需要进行初始化的GPIO结构体;

2、  u16 DeviceId:就是上文提到的DeviceId了。

返回

- XST_SUCCESS if the initialization was successfull.

- XST_DEVICE_NOT_FOUND  if the device configuration data was notfound for a device with the supplied device ID.

说明     GPIO初始化


函数名

XGpio_LookupConfig

输入   

u16 DeviceId:就是上文提到的DeviceId了。

返回

A pointer of data type XGpio_Config which points to the

device configuration if DeviceID is found.

- NULL if DeviceID is not found.

返回XGpio_Config结构体指针就是了

说明   获取初始化结构体信息

   

/*

 * API Basic functions implemented in xgpio.c

 */

void XGpio_SetDataDirection(XGpio *InstancePtr, unsigned Channel,

               u32 DirectionMask);

设置GPIO的输入输出方向,XGpio *InstancePtr:需要进行初始化的GPIO结构体;unsigned Channel是初始化通道1还是通道2,1代表Channel 1,2代表Channel 2,u32 DirectionMask,某一位设为0就是输出,设为1就是输入,如0x0001就代表第0位为输入,其他为输出。

 

u32 XGpio_GetDataDirection(XGpio *InstancePtr, unsigned Channel);

    获取GPIO的输入输出方向信息。

 

u32 XGpio_DiscreteRead(XGpio *InstancePtr, unsigned Channel);

    GPIO数据读。

 

void XGpio_DiscreteWrite(XGpio *InstancePtr, unsigned Channel, u32 Mask);

    GPIO数据写,u32 Mask需要写的数据。

 

/*

 * API Functions implemented in xgpio_extra.c

 */

void XGpio_DiscreteSet(XGpio *InstancePtr, unsigned Channel, u32 Mask);

    GPIO置1,相应位为1就置1,为0不作改变。

 

void XGpio_DiscreteClear(XGpio *InstancePtr, unsigned Channel, u32 Mask);

         GPIO清0,相应位为0就清0,为1不作改变。

XGpio_WriteReg(BaseAddress, RegOffset, Data) \XGpio_Out32((BaseAddress) + (RegOffset), (u32)(Data));

        GPIO 写操作,BaseAddress:GPIO 基地址,RegOffset寄存器偏移地址,Data写数据

XGpio_ReadReg(BaseAddress, RegOffset) \XGpio_In32((BaseAddress) + (RegOffset))

       GPIO 读操作


附赠一份MicroBlaze 之流水灯,仅供参考,以上信息转载非本人写

手把手教Xilinx Nexys3 MicroBlaze之流水灯.pdf