千家信息网

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

发表于:2025-02-06 作者:千家信息网编辑
千家信息网最后更新 2025年02月06日,本篇内容介绍了"Zynq中PS的MIO操作方法是什么"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!在
千家信息网最后更新 2025年02月06日Zynq中PS的MIO操作方法是什么

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

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

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

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

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操作方法是什么"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!

0