MicroBlaze之GPIO的API
0赞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