本篇内容介绍了“Zynq中PS的MIO操作方法是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
创新互联-专业网站定制、快速模板网站建设、高性价比崖州网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式崖州网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖崖州地区。费用合理售后完善,10年实体公司更值得信赖。
在编写程序之前,先来了解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。
程序中利用以下函数设置方向和输出使能:
intmain()
{
XGpioPs_Config *GPIO_CONFIG ;
intStatus ;
//通用手法,查找GPIO列表
GPIO_CONFIG= XGpioPs_LookupConfig(MIO_0_ID);
//Exception的检测
Status= XGpioPs_CfgInitialize(&GPIO_PTR, GPIO_CONFIG, GPIO_CONFIG->BaseAddr) ;
if(Status != XST_SUCCESS)
{
returnXST_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);
}
return0;
}
实现两个LED的闪烁
“Zynq中PS的MIO操作方法是什么”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注创新互联网站,小编将为大家输出更多高质量的实用文章!