ZYNQ GPIO应用

本文介绍了ZYNQ GPIO的使用,重点讲解了EMIO如何通过PL扩展IO,并结合中断实现按键检测。内容涵盖了IP配置、中断初始化及处理、硬件连接和CPU GPIO配置。同时展示了如何利用GPIO实现IIC接口读写EEPROM的示例。
摘要由CSDN通过智能技术生成

总结一下zynq的GPIO应用
zynq的GPIO分为PS部分的MIO和PS-PL配合使用的EMIO(用PL端的IO扩展GPIO),由PS调度。这里描述一下这个EMIO的应用。

IP的方式扩展IO
在vivado下配置AXI接口的GPIO
这里写图片描述

这里例化了两组GPIO,一组作为 LED的输出IO,一组作为按键的输入IO,采用中断方式检测电平变化

#include <stdio.h>
#include <xgpio.h>
#include "platform.h"
#include "xil_printf.h"
#include "xscugic.h"
#include "xscutimer.h"
#include "./inc/gpio.h"

static XGpio led_out_4b;
static XGpio BTNInst; 
static XScuGic INTCInst; 

int XGpio_InterruptInitialize(void)
{
    int status; 
    printf("LED 4bit Init.............\r\n");

    status = XGpio_Initialize(&led_out_4b,XPAR_AXI_GPIO_0_DEVICE_ID);   //Init LED GPIO
    if(status != XST_SUCCESS) 
        return XST_FAILURE; 
    XGpio_SetDataDirection(&led_out_4b,1,0x00);                         //Set GPIO as output


    status = XGpio_Initialize(&BTNInst, BTNS_DEVICE_ID); 
    if(status != XST_SUCCESS) 
        return XST_FAILURE; 
    XGpio_SetDataDirection(&BTNInst, 1, 0xFF); 


    printf("EXIT InterruptInitialize......\r\n");
    status = IntcInitFunction(EXIT_INTC_DEVICE_ID, &BTNInst); 
    if(status != XST_SUCCESS) 
        return XST_FAILURE; 


    return XST_SUCCESS; 
}






//---------------------------------------------------- 
// INTERRUPT SETUP FUNCTIONS 
//---------------------------------------------------- 
int IntcInitFunction(u16 DeviceId, XGpio *GpioInstancePtr)
{ 
    XScuGic_Config *IntcConfig;  
    int status; 

    // Interrupt controller initialization 
    IntcConfig = XScuGic_LookupConfig(DeviceId); 

    status = XScuGic_CfgInitialize(&INTCInst, IntcConfig, 
                                    IntcConfig->CpuBaseAddress); 
    if(status != XST_SUCCESS) 
        return XST_FAILURE; 

    // Register GIC interrupt han
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值