温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Zynq中PS的MIO操作方法是什么

发布时间:2021-12-31 09:04:46 来源:亿速云 阅读:285 作者:iii 栏目:互联网科技

本篇内容介绍了“Zynq中PS的MIO操作方法是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

在编写程序之前,先来了解GPIO的BANK分布,GPIO是有4个BANK,注意与MIO的BANK区分。BANK0控制32个信号,BANK1控制22个信号,总共是MIO的54个引脚,BANK2和BANK3共能控制64个PL端引脚,每一组都有三个信号,输入EMIOGPIOI,输出EMIOGPIOO,输出使能EMIOGPIOTN,共192个信号。 

Zynq中PS的MIO操作方法是什么

 下图为GPIO的控制,实验中会用到输出部分的寄存器,数据寄存器DATA,数据掩码寄存器MASK_DATA_LSW,MASK_DATA_MSW,方向控制寄存器DIRM,输出使能控制器OEN。

Zynq中PS的MIO操作方法是什么

程序中利用以下函数设置方向和输出使能:

int main()

{

    XGpioPs_Config *GPIO_CONFIG ;

    int Status ; 

    //通用手法,查找GPIO列表

    GPIO_CONFIG= XGpioPs_LookupConfig(MIO_0_ID);

    //Exception的检测

    Status= XGpioPs_CfgInitialize(&GPIO_PTR, GPIO_CONFIG, GPIO_CONFIG->BaseAddr) ;

    if (Status != XST_SUCCESS)

    {

        return XST_FAILURE ;

    }

    //设置MIO的PIN引脚方向

    XGpioPs_SetDirectionPin(&GPIO_PTR,0, GPIO_OUTPUT) ;

    XGpioPs_SetDirectionPin(&GPIO_PTR,13, GPIO_OUTPUT) ;

    //使能MIO的PIN引脚输出

    XGpioPs_SetOutputEnablePin(&GPIO_PTR,0, GPIO_OUTPUT) ;

    XGpioPs_SetOutputEnablePin(&GPIO_PTR,13, GPIO_OUTPUT) ;

    while(1)

    {

        XGpioPs_WritePin(&GPIO_PTR,0, 1) ;

        XGpioPs_WritePin(&GPIO_PTR,13, 0) ;

        usleep(100000);

        XGpioPs_WritePin(&GPIO_PTR,0, 0) ;

        XGpioPs_WritePin(&GPIO_PTR,13, 1) ;

        usleep(100000);

    }

    return 0;

}

实现两个LED的闪烁

Zynq中PS的MIO操作方法是什么

“Zynq中PS的MIO操作方法是什么”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI