soc 通过GPIO点亮LED

来源:互联网 发布:搜不到网络打印机 编辑:程序博客网 时间:2024/06/08 19:37

板子:ZedBoard       

#include "xgpiops.h"#include "sleep.h"int main(){static XGpioPs psGpioInstancePtr;//GPIO参数XGpioPs_Config* GpioConfigPtr;//GPIO的设备地址和基地址int iPinNumber= 9; //LD9连接的是MIO7,操作的端口u32 uPinDirection = 0x1; //1表示输出,0表示输入int xStatus;//--MIO的初始化GpioConfigPtr = XGpioPs_LookupConfig(XPAR_PS7_GPIO_0_DEVICE_ID);//查找GPIO的配置if(GpioConfigPtr == NULL)return XST_FAILURE;xStatus = XGpioPs_CfgInitialize(&psGpioInstancePtr,GpioConfigPtr,GpioConfigPtr->BaseAddr);//完成GPIO配置初始化if(XST_SUCCESS != xStatus)print(" PS GPIO INIT FAILED \n\r");//--MIO的输入输出操作XGpioPs_SetDirectionPin(&psGpioInstancePtr, iPinNumber,uPinDirection);//配置MIO输出方向//首先它有一个读取bank 号的子程序,然后读取需要写入的寄存器地址,接下来对pinbumer 这一位单独做一些操作,最后把方向寄存器的值写入到读出的那个寄存器当中XGpioPs_SetOutputEnablePin(&psGpioInstancePtr, iPinNumber,1);//配置MIO的第7位输出while(1){XGpioPs_WritePin(&psGpioInstancePtr, iPinNumber, 1);//点亮MIO的第7位输出1usleep(500000); //延时XGpioPs_WritePin(&psGpioInstancePtr, iPinNumber, 0);//熄灭MIO的第7位输出0usleep(500000); //延时}/****************************************************************while(1){XGpioPs_WriteReg(0xE000A000,0x00000000, 0xFF7FFFFF&0xFFFF0080);usleep(500000); //延时XGpioPs_WriteReg(0xE000A000,0x00000000, 0xFF7FFFFF&0xFFFF0000);usleep(500000); //延时}******************************************************************/return 0;}

具体C代码如上

此处再说明下EMIO与MIO的区别,MIO是直接与ps相连,而EMIO是与pl相连,所以在做ps时,若要调用EMIO,则必须对调用的EMIO接口锁上引脚,其他一样

原创粉丝点击