参见我的工程E:\vivado_program\ps_to_pl_gpio
该例程是在ZC706开发板上实现的,在vivado中如下所示:
参考ZC706开发板的数据手册,对led的管脚进行约束,数据手册如下图所示:
这里有一个问题,按照数据手册设置LVCOMS25报错,因为在zynq中bank0和bank1中电压设置为1.8V,因此这里改为LVCOMS18,不知道原因!!!!!
在SDK中的软件程序如下所示:
#include <stdio.h>
#include "platform.h"
#include "xparameters.h"
#include "xgpio.h"
XGpio gpiooutput;
int main()
{
u32 delay;
u32 ledwidth;
init_platform();
printf(".........the start.......\n\r");
XGpio_Initialize(&gpiooutput, XPAR_AXI_GPIO_0_DEVICE_ID);
XGpio_SetDataDirection(&gpiooutput,1,0x0);
XGpio_DiscreteWrite(&gpiooutput,1,0x0);
while(1)
{
for(ledwidth=0x0;ledwidth<4;ledwidth++)
{
XGpio_DiscreteWrite(&gpiooutput,1,1<<ledwidth);
for(delay=0;delay<8000000;delay++);
XGpio_DiscreteClear(&gpiooutput,1,1<<ledwidth);
}
}
printf(".........the end.......\n\r");
cleanup_platform();
return 0;
}