3、ZYNQ7020 EMIO PL端按键控制PS端LED亮灭

 使用GPIO通过EMIO引脚控制PL端的按键来控制PS端LED亮灭

#include "stdio.h"
#include "xparameters.h"
#include "xgpiops.h"

#define GPIOPS_ID 	XPAR_XGPIOPS_0_DEVICE_ID   //PS端  GPIO器件 ID

#define MIO_LED0	7   //PS_LED0 连接到 MIO7
#define MIO_LED1 	8   //PS_LED1 连接到 MIO8

#define MIO_KEY0 	12  //PS_KEY0 连接到 MIO7
#define EMIO_KEY 	54  //PL_KEY0 连接到EMIO0 EMIO引脚编号从54开始

int main()
{
    printf("EMIO TEST!\n");

    XGpioPs gpiops_inst;            //PS端 GPIO 驱动实例
    XGpioPs_Config *gpiops_cfg_ptr; //PS端 GPIO 配置信息

    //根据器件ID查找配置信息
    gpiops_cfg_ptr = XGpioPs_LookupConfig(GPIOPS_ID);
    //初始化器件驱动
    XGpioPs_CfgInitialize(&gpiops_inst, gpiops_cfg_ptr, gpiops_cfg_ptr->BaseAddr);

    //设置LED为输出
    XGpioPs_SetDirectionPin(&gpiops_inst, MIO_LED0, 1);
    XGpioPs_SetDirectionPin(&gpiops_inst, MIO_LED1, 1);

    //使能LED输出
    XGpioPs_SetOutputEnablePin(&gpiops_inst, MIO_LED0, 1);
    XGpioPs_SetOutputEnablePin(&gpiops_inst, MIO_LED1, 1);

    //设置KEY为输入
    XGpioPs_SetDirectionPin(&gpiops_inst, MIO_KEY0, 0);
    XGpioPs_SetDirectionPin(&gpiops_inst, EMIO_KEY, 0);

    //读取按键状态,用于控制LED亮灭
    while(1){
        XGpioPs_WritePin(&gpiops_inst, MIO_LED0, ~XGpioPs_ReadPin(&gpiops_inst, MIO_KEY0));

        XGpioPs_WritePin(&gpiops_inst, MIO_LED1, ~XGpioPs_ReadPin(&gpiops_inst, EMIO_KEY));
    }

    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值