zybo——嵌入式笔记

zynq------嵌入式学习笔记(GPIO之MIO控制LED)

  • GPIO是一个外设,用来对器件的引脚作观测(input)以及控制(output,通过MIO模块)。

  • MIO(Multiuse I/O),将来自PS外设和静态存储器接口的访问多路复用到PS的引脚上。

  • GPIO可以独立且动态地编程,作为输入/输出以及中断模式

  • GPIO被分成了4个Bank,Bank0/Bank1通过MIO连接到PS的引脚,Bank2/Bank3通过EMIO连接到PL。

  • 软件通过一组存储映射的寄存器来控制GPIO。

  • 寄存器组:

    DATA_RO,用来反映器件引脚的状态

    DATA,在GPIO被配置成输出的时候,该寄存器可以控制输出的数值。

    MASK_DATA_LSW,用于屏蔽DATA的低16位

    MASK_DATA_MSW,用于屏蔽DATA的高16位

    DIRM,用于控制I/O引脚是作为输入还是输出。0:关闭输出驱动;1:使能输出驱动

    OEN,当I/O被配置成输出时,该寄存器用于打开/关闭输出使能。0:关闭输出使能;1:打开输出使能

    DATA: 1010_ 0101_1010_0101_XXXX_XXXX_XXXX_XXXX

    16个LED:亮灭亮灭------灭亮灭亮------亮灭亮灭------灭亮灭亮

    MASK_DATA_MSW(屏蔽高16位): 1111_ 0000_1111_1111

    Data: 0000_ 1010_0000_0000

    DATA: 1010_ 1010_1010_0101_XXXX_XXXX_XXXX_XXXX

    16个LED:亮灭亮灭------亮灭亮灭------亮灭亮灭------灭亮灭亮

​ (1)先把DATA的值读出来 (read)

​ (2)改变需要更改的数值。 (modify)

​ (3)修改之后的数值写DATA里 (write)

  • MIO8:7在系统复位过程中作为VMODE引脚(作为输入),用于配置MIO Bank的电压,复位结束后,MIO8:7只能作为输出信号。

MIO控制led实验代码:

c 复制代码
#include <stdio.h>
#include <xparameters.h>
#include <xgpiops.h>
#include <sleep.h>

#define GPIO_DEVICE_ID XPAR_XGPIOPS_0_DEVICE_ID
#define MIO0_LED       0

XGpioPs_ConfigPtr * ConfigPtr;
XGpioPs Gpio;

int main()
{
	printf("GPIO_TEST\n");


 //根据器件的ID,查找器件的配置信息
 ConfigPtr = XGpioPs-LookupConfig(GPIO_DEVICE_ID);
 //初始化GPIO驱动
 XGpioPs_CfgInitialize(&Gpio,ConfigPtr,ConfigPtr->BaseAddr);


 //把GPIO的方向设置为输出(0输入,1输出)
 XGpioPs_SetDirectionPin(&Gpio,MIO0_LED,1);

 //设置输出使能(0关闭,1打开)
 XGpioPs_SetOutputEnablePin(&Gpio,MIO0_LED,1);

 //写数据到GPIO的输出引脚
 while(1)
 {
  XGpioPs_WritePin(&Gpio,MIO0_LED,0x1);
  usleep(1000000);
  XGpioPs_WritePin(&Gpio,MIO0_LED,0x0);
  usleep(1000000);
 }

 return 0;
}
相关推荐
Brilliantwxx6 小时前
【STM32】 NVIC 与 EXTI 中断 · 超详细源码级解析
stm32·单片机·嵌入式硬件
niuTaylor8 小时前
飞腾 FT-2000/4 Ubuntu 内存卡 / NVMe SSD 系统制作完整指南
linux·服务器·人工智能·驱动开发·单片机
思茂信息9 小时前
CST软件BCI仿真模型及仿真案例
开发语言·单片机·嵌入式硬件·算法·emc
L@ncor9 小时前
第五章 基于低代码平台的智能体搭建 · 学习笔记(Coze / Dify / FastGPT / n8n)
笔记·学习·低代码·agent·prompt工程
知潮网9 小时前
被嫌弃的五仁月饼,一吨千元在养猪场翻了身
笔记
2601_960631239 小时前
中药前处理及提取的工艺环节与技术要点
笔记
2601_965384269 小时前
口腔黏膜清洁中的几何约束与流体动力学边界层问题分析
经验分享·笔记
一米阳光866110 小时前
软考高级【信息系统项目管理师】高项重要考点(9)组织 助你顺利上岸!
笔记·职场发展·软考·高项·信息系统项目管理师·高级职称
李永奉10 小时前
中科蓝讯SDK开发-BT897X、BT891X、AB573X、AB572X 系列 触摸按键提示音功能实现
网络·单片机·嵌入式硬件·mcu·物联网
Zw-awa10 小时前
定时器到底在数什么:STM32 的时间基准从哪里来
stm32