nt XGpio_CfgInitialize (
XGpio *InstancePtr ,
XGpio_Config *Config ,
u32 EffectiveAddr
)
//成功:返回值:XST_SUCCESS
实用调用函数给出的配置数据对XGpio进行初始化
InstancePtr: 是指向XGpio实例的指针。指针的内存空间必须有调用函数给分配好。通过XGpio API对其进行操作的函数可以通过这个指针来实现。
Config: 包含了指定GPIO设备的结构信息。通过Config文件的内容可以对InstancePtr进行初始化。通过在每次调用时给予不同的配置文件,这个函数可以初始化多个设备实例 EffectiveAddr: 是虚拟内存空间的设备基址。一旦这个函数被使用,调用函数要对从EffectiveAddr地址到设备物理基址的无变化地址映射负责。如果地址变化了,将会发生未知错误。如果不使用地址映射,直接将Config->BaseAddress(设备的物理地址) 传送给这个参数就可以了。
00000000000000000000000000000000000000000000000000000000000000000000000
u32 XGpio_DiscreteRead (
XGpio * InstancePtr , //通过GPIO操作的寄存器
unsigned Channel //GPIO核有两个通道,这里就是通道的选择0_1
)
无返回值
00000000000000000000000000000000000000000000000000000000000000000000000 void XGpio_DiscreteClear (
XGpio * InstancePtr , //通过GPIO操作的寄存器
unsigned Channel , //GPIO核有两个通道,这里就是通道的选择0_1
u32 Mask //32位 0x00000000
)
返回值:Current copy of the discretes register
对特定GPIO通道的离散寄存器清零
InstancePtr:
是XGpio进行操作的指针。
Channel:
包含了要进行操作的通道(1或者2)
Mask:
是一个位数据的集合,这个集合将被写入离散的数据寄存器。其他数据寄存器不会受影响。
void XGpio_DiscreteSet (
XGpio * InstancePtr , //通过GPIO操作的寄存器
unsigned Channel , //GPIO核有两个通道,这里就是通道的选择0_1
u32 Mask //32位 0x00000000
)
无返回值
这两个函数只对Mask中对应位为1的位有影响,比如,XGpio_DiscreteSet(&lcd240128,1,Ox00000001)将LCl3240128_pin<O>置1,而不影响其他位;同理,XGpio_DiscteteClear(&1cd240128,1,0x00000001)将LCD240128_pin<0>置0,而不影响其他位。
0000000000000000000000000000000000000000000000000000000000000000000000000000
void XGpio_DiscreteWrite (
XGpio * InstancePtr, //通过GPIO操作的寄存器
unsigned Channel, //GPIO核有两个通道,这里就是通道的选择0_1
u32 Data //写入的数据,可以自己定义,可以通过其他变量获取
)
无返回值
0000000000000000000000000000000000000000000000000000000000000000000000000000
u32 XGpio_GetDataDirection (
XGpio * InstancePtr ,
unsigned Channel
)
这个函数不太清楚,不过有个实例可以看看
返回值:Bits set to 0 are output and bits set to 1 are input.
|