五个GPIO的例子研究NO1:#include "xparameters.h"#include "xgpio.h"#include "xgpio_l.h"#include "xutil.h"int main (void){ XGpio dip, push; int i, psb_check, dip_check; XGpio LEDs8_Bit;printf("-- Start of the Program --\r\n");XGpio_Initialize(&dip, XPAR_DIP_DEVICE_ID);
// device ID号的定义规则 XGpio_SetDataDirection(&dip, 1, 0xffffffff); //
必须注明通道号,否则出错 XGpio_Initialize(&push, XPAR_PUSH_DEVICE_ID); XGpio_SetDataDirection(&push, 1, 0xffffffff); XGpio_Initialize(&LEDs8_Bit, XPAR_LEDS_8BIT_DEVICE_ID); XGpio_SetDataDirection(&LEDs8_Bit, 1, 0x0);
while (1) { psb_check = XGpio_DiscreteRead(&push, 1); xil_printf("Push Buttons Status %x\r\n", psb_check); //:
/n会使超级终端斜着显示 dip_check = XGpio_DiscreteRead(&dip, 1); xil_printf("DIP Switch Status %x\r\n", dip_check); //:
/r/n
会使正常往下显示 XGpio_DiscreteWrite(&LEDs8_Bit, 1, dip_check); for (i=0; i<999999; i++); }}NO2:#define GPIO_INPUT_SWITCH1 0xffffffff #define GPIO_OUTPUT_LED_FAULT 0x00010000 #define GPIO_OUTPUT_LED_POWER 0x00020000#include "xbasic_types.h"#include "xstatus.h"#include "xparameters.h"#include "xgpio.h" #include "xgpio_l.h"#include "xutil.h"int main (void){ Xuint32 Data; XStatus Status;XGpio dip, push;int i, psb_check, dip_check; XGpio LEDs8_Bit;printf("-- Start of the Program --\r\n"); XGpio_Initialize(&push, XPAR_PUSH_DEVICE_ID); XGpio_SetDataDirection(&push, 1, 0xffffffff); XGpio_Initialize(&LEDs8_Bit, XPAR_LEDS_8BIT_DEVICE_ID); XGpio_SetDataDirection(&LEDs8_Bit, 1, 0x0);
Status = XGpio_Initialize(&dip, XPAR_DIP_DEVICE_ID); if (Status != XST_SUCCESS) // XStatus Status为嵌入式中状态的定义关键字 { printf("000\n"); } else { printf("111\n"); }XGpio_SetDataDirection(&dip,1,GPIO_INPUT_SWITCH1);XGpio_DiscreteSet (&dip,1,GPIO_OUTPUT_LED_POWER);XGpio_DiscreteClear (&dip,1,GPIO_OUTPUT_LED_FAULT);
while (1){ Data = XGpio_DiscreteRead(&dip,1); //检测按键是否被按下 xil_printf("Data=%x\r\n",Data); if (Data & GPIO_INPUT_SWITCH1) { xil_printf("111\r\n"); } //有按下
else { xil_printf("222\r\n");} // /r/n //没按下 for (i=0; i<9999999; i++);}转载自:kenzol的博客 |