GPIO 之 MIO 控制 LED 实验目的
使用 GPIO 通过两个 MIO 引脚控制 PS 端两个 LED 的亮灭,实现底板上 PS_LED0、PS_LED1 两个 LED 灯同亮同灭的效果。
简介
ZYNQ PS 中的外设(如 USB 控制器、UART 控制器、I2C 控制器以及 GPIO 等等)可以通过 MIO(multiplexed I/O,多路复用 I/O)模块连接到 PS 端的引脚上,也可以通过 EMIO(extended multiplexed I/O interface,扩展多路 I/O 接口)连接到 PL 端的引脚。Zynq-7000 系列芯片一般有 54 个 MIO,
MIO 一览表
DATA_RO 是数据只读寄存器,通过该寄存器能够观察器件引脚上的值
DATA 是数据寄存器,该寄存器控制 GPIO 信号配置为输出时要输出的值
MASK_DATA_LSW 和 MASK_DATA_MSW 是数据掩码寄存器
DIRM 是方向模式寄存器,用于控制 I/O 引脚是用作输入还是输出。当 DIRM [x] == 0 时,输出驱动器被禁用,该引脚作为输入引脚使用。
硬件设计
创建 Vivado 工程
在“Hello World”实验的基础上进行
先打开“Hello World”实验的 Vivado 工程,打开后选择菜单栏的 File-> Project->Save As
使用 IP Integrator 创建 Processing System
点击OK ,按 Ctrl+S 快捷键保存 Diagram
连接到外设 LED 和 KEY 的 GPIO_MIO
生成顶层 HDL
生成 Bitstream 文件并导出到 Vitis
软件设计
在 Vitis 中创建应用工程
case XPLAT_ZYNQ:
Input_Pin = 14;
Output_Pin = 10;
break;
修改为
case XPLAT_ZYNQ:
Input_Pin = 14;
Output_Pin = 0;
break;
#include "xparameters.h" //器件参数信息
#include "xstatus.h" //包含 XST_FAILURE 和 XST_SUCCESS 的宏定义
#include "xil_printf.h" //包含 print()函数
#include "xgpiops.h" //包含 PS GPIO 的函数
#include "sleep.h" //包含 sleep()函数
// MIO 引脚的高电平对应的是 LED 灯亮,低电平对应 LED 灯灭
//宏定义 GPIO_DEVICE_ID
#define GPIO_DEVICE_ID XPAR_XGPIOPS_0_DEVICE_ID
//连接到 MIO 的 LED
#define MIOLED0 7 //连接到 MIO7
#define MIOLED1 8 //连接到 MIO8
XGpioPs Gpio; // GPIO 设备的驱动程序实例
int main()
{
int Status;
XGpioPs_Config *ConfigPtr;
print("MIO Test! \n\r");
ConfigPtr = XGpioPs_LookupConfig(GPIO_DEVICE_ID);
Status = XGpioPs_CfgInitialize(&Gpio, ConfigPtr,
ConfigPtr->BaseAddr);
if (Status != XST_SUCCESS){
return XST_FAILURE;
}
//设置指定引脚的方向:0 输入,1 输出
XGpioPs_SetDirectionPin(&Gpio, MIOLED0, 1);
XGpioPs_SetDirectionPin(&Gpio, MIOLED1, 1);
//使能指定引脚输出:0 禁止输出使能,1 使能输出
XGpioPs_SetOutputEnablePin(&Gpio, MIOLED0, 1);
XGpioPs_SetOutputEnablePin(&Gpio, MIOLED1, 1);
while (1) {
XGpioPs_WritePin(&Gpio, MIOLED0, 0x0); //向指定引脚写入数据:0 或 1
XGpioPs_WritePin(&Gpio, MIOLED1, 0x0);
sleep(1); //延时 1 秒
XGpioPs_WritePin(&Gpio, MIOLED0, 0x1);
XGpioPs_WritePin(&Gpio, MIOLED1, 0x1);
sleep(1);
}
return XST_SUCCESS;
}
下载验证
右键选择 gpio_mio 工程,在弹出的菜单中选择 Run as-> Launch on Hardware
完成比完美重要!!!
学习记录,侵权联系删除
来源:正点原子