当前位置: 首页 > news >正文

Zynq PS端外设之GPIO

1. GPIO(通用输入/输出)

GPIO外设有4个Bank,Bank0/1通过MIO连接到PS的引脚上;Bank2/3通过EMIO连接到PL的引脚上。
注意:Bank1的电平要改成LVCOMS 1.8

  • GPIO寄存器
    在这里插入图片描述

    寄存器:
    DATA_RO:	读取GPIO的输入
    DATA:		设置GPIO的输出值
    MASK_DATA_LSW/MASK_DATA_MSW:	数据掩码寄存器,MASK_DATA_LSW 控制Bank的低16位,MASK_DATA_MSW控制高16位
    DIRM:		方向模式寄存器,控制I/O引脚是输入还是输出
    OEN:		使能输出寄存器,控制是否启用输出
    

2.GPIO的使用

2.1 MIO

MIO不需要添加引脚约束,Zynq勾选MIO,SDK即可直接使用GPIO。

  • Vivado开发
    在这里插入图片描述

  • SDK开发

#include "xparameters.h" //器件参数信息
#include "xstatus.h"     //包含XST_FAILURE和XST_SUCCESS的宏定义
#include "xil_printf.h"  //包含print()函数
#include "xgpiops.h"     //包含PS GPIO的函数#define GPIO_DEVICE_ID      XPAR_XGPIOPS_0_DEVICE_ID
#define MIOLED0    0     //连接到MIO0int main()
{// 1.初始化GPIOint Status;XGpioPs Gpio;XGpioPs_Config *ConfigPtr;ConfigPtr = XGpioPs_LookupConfig(GPIO_DEVICE_ID);Status = XGpioPs_CfgInitialize(&Gpio, ConfigPtr, ConfigPtr->BaseAddr);if (Status != XST_SUCCESS){return XST_FAILURE;}// 2.设置指定引脚的方向:0输入,1输出XGpioPs_SetDirectionPin(&Gpio, MIOLED0, 1);// 3.使能指定引脚输出:0禁止输出使能,1使能输出XGpioPs_SetOutputEnablePin(&Gpio, MIOLED0, 1);// 4.向指定引脚写入数据:0或1XGpioPs_WritePin(&Gpio, MIOLED0, 0x0);while (1);return XST_SUCCESS;
}

2.2 EMIO

EMIO(Extended MIO,扩展的MIO)

  • Vivado开发

    1. 勾选EMIO
      在这里插入图片描述
    2. 引出管脚并添加管脚约束
      在这里插入图片描述
  • SDK开发

    #include "stdio.h"
    #include "xparameters.h"
    #include "xgpiops.h"#define GPIOPS_ID XPAR_XGPIOPS_0_DEVICE_ID   //PS端  GPIO器件 ID
    #define EMIO_KEY 54  //PL_KEY0 连接到EMIO0int main()
    {// 1.初始化GPIOXGpioPs gpiops_inst;XGpioPs_Config *gpiops_cfg_ptr;gpiops_cfg_ptr = XGpioPs_LookupConfig(GPIOPS_ID);XGpioPs_CfgInitialize(&gpiops_inst, gpiops_cfg_ptr, gpiops_cfg_ptr->BaseAddr);// 2.设置指定引脚的方向:0输入,1输出XGpioPs_SetDirectionPin(&gpiops_inst, EMIO_KEY, 0);// 3.读取GPIO的值char key_value = 0;XGpioPs_ReadPin(&gpiops_inst, EMIO_KEY);while(1){}return 0;
    }
    

    注意:BANK2的EMIO0编号为 54 (从0 开始编号)

相关文章:

Zynq PS端外设之GPIO

1. GPIO(通用输入/输出) GPIO外设有4个Bank,Bank0/1通过MIO连接到PS的引脚上;Bank2/3通过EMIO连接到PL的引脚上。 注意:Bank1的电平要改成LVCOMS 1.8 GPIO寄存器 寄存器: DATA_RO: 读取GPIO的输…...

Spring Boot项目开发常见问题及解决方案(上)

启动相关问题 问题 1:项目启动时报错“找不到主类” 在使用 Spring Boot 打包成可执行 JAR 文件后启动,有时会遇到这个头疼的问题。通常是因为打包配置有误或者项目结构不符合要求。 解决方案: 首先,检查 pom.xml(Ma…...

Elasticsearch: 高级搜索

这里写目录标题 一、match_all匹配所有文档1、介绍: 二、精确匹配1、term单字段精确匹配查询2、terms多字段精确匹配3、range范围查询4、exists是否存在查询5、ids根据一组id查询6、prefix前缀匹配7、wildcard通配符匹配8、fuzzy支持编辑距离的模糊查询9、regexp正则…...

STM32 拓展 电源控制

目录 电源控制 电源框图 VDDA供电区域 VDD供电区域 1.8V低电压区域 后备供电区域 电压调节器 上电复位和掉电复位 可编程电压检测器(PVD) 低功耗 睡眠模式(只有CUP(老板)睡眠) 进入睡眠模式 退出睡眠模式 停机(停止)模式(只留核心区域(上班)) 进入停…...

SpringBootWeb案例-1

文章目录 SpringBootWeb案例1. 准备工作1.1 需求&环境搭建1.1.1 需求说明1.1.2 环境搭建 1.2 开发规范 2. 部门管理2.1 查询部门2.1.1 原型和需求2.1.2 接口文档2.1.3 思路分析2.1.4 功能开发2.1.5 功能测试 2.2 前后端联调2.3 删除部门2.3.1 需求2.3.2 接口文档2.3.3 思路…...

HTML——57. type和name属性

<!DOCTYPE html> <html><head><meta charset"UTF-8"><title>type和name属性</title></head><body><!--1.input元素是最常用的表单控件--><!--2.input元素不仅可以在form标签内使用也可以在form标签外使用-…...

应用架构模式-总体思路

采用引导式设计方法&#xff1a;以企业级架构为指导&#xff0c;形成较为齐全的规范指引。在实践中总结重要设计形成决策要点&#xff0c;一个决策要点对应一个设计模式。自底向上总结采用该设计模式的必备条件&#xff0c;将之转化通过简单需求分析就能得到的业务特点&#xf…...

vue 虚拟滚动 vue-virtual-scroller RecycleScroller

vue 3 https://github.com/Akryum/vue-virtual-scroller/blob/master/packages/vue-virtual-scroller/README.md vue 2 https://github.com/Akryum/vue-virtual-scroller/tree/v1/packages/vue-virtual-scroller npm install --save vue-virtual-scrollernextmain.js // 虚拟滚…...

DC-DC 降压转换器设计提示和技巧

基本 DC-DC 降压转换器电路 在开始之前&#xff0c;我们先回顾一下DC-DC降压转换器的电路&#xff1a; 为了帮助您&#xff0c;我开发了降压设计中“什么影响什么”的矩阵&#xff1a; 主要的权衡是电感&#xff08;与 k 因子成反比&#xff0c;即峰峰值与平均电感电流之比&a…...

多模态论文笔记——Coca

大家好&#xff0c;这里是好评笔记&#xff0c;公主号&#xff1a;Goodnote&#xff0c;专栏文章私信限时Free。本文详细介绍多模态模型Coca&#xff0c;在DALLE 3中使用其作为captioner基准模型的原因和优势。 文章目录 ALBEF论文模型结构组成训练目标 CoCa​论文模型结构CoCa…...

@Cacheable 注解爆红(不兼容的类型。实际为 java. lang. String‘,需要 ‘boolean‘)

文章目录 1、org.springframework.cache.annotation.Cacheable2、javax.persistence.Cacheable Cacheable(value "findPAUserById", key "#id")public Optional<PAUser> findById(Integer id) {return paUserRepository.findById(id);}我真的要笑死…...

java相互加密解密

java代码 import javax.crypto.Cipher; import javax.crypto.spec.IvParameterSpec; import javax.crypto.spec.SecretKeySpec; import java.util.Base64;public class AesUtils {public static String encrypt(String plaintext, String key, String iv) throws Exception {C…...

PostgreSQL中FIRST_VALUE、LAST_VALUE、LAG 和 LEAD是窗口函数,允许返回在数据集的特定窗口(或分区)内访问行的相对位置

在PostgreSQL中&#xff0c;FIRST_VALUE、LAST_VALUE、LAG 和 LEAD 是窗口函数&#xff08;window functions&#xff09;&#xff0c;它们允许你在数据集的特定窗口&#xff08;或分区&#xff09;内访问行的相对位置。以下是对这些函数的详细解释和用法&#xff1a; 1. FIRS…...

树莓派之旅-第一天 系统的烧录和设置

自言自语&#xff1a; 在此记录一下树莓派的玩法。以后有钱了买点来玩啊草 系统的安装烧录 系统下载 树莓派官网&#xff1a;https://www.raspberrypi.com/ 首页点击SoftWare进入OS下载页面 这里是安装工具&#xff1a;安装工具负责将系统镜像安装到sd卡中 点击下载符合自己…...

数据库工程师进阶秘籍:云计算基础知识题目精选与答案(附PDF)

【单选题】1、将基础设施作为服务的云计算服务类型是&#xff08;&#xff09;。 A. IaaS B. PaaS C. SaaS D. 以上都不是 正确答案&#xff1a;A 答案解析&#xff1a;本题考查云计算的服务类型。基础设施即服务IaaS&#xff08;Infrastructure as a Service&#xff09;&…...

【HAProxy】如何在Ubuntu下配置HAProxy服务器

HAProxy 是一款免费、开源且强大的反向代理程序&#xff0c;它为 HTTP 和 TCP 基础的应用提供了高可用性、负载均衡以及代理功能&#xff0c;因此对于管理高流量服务器&#xff08;或 Web 应用&#xff09;来说&#xff0c;通过将负载分散到多个节点服务器上&#xff0c;它是一…...

C#编写的盘符图标修改器 - 开源研究系列文章

这天在网上遇到一个Windows的盘符图标修改软件&#xff0c;但是它那个是.net framework 2.0的&#xff0c;所以就将其改成4.8.1的了&#xff0c;用于Windows 11等默认不安装2.0库的操作系统里使用。 1、 项目目录&#xff1b; 2、 源码介绍&#xff1b; 它直接进行注册表的修改…...

(四)配置有线网口、SSH登陆、文件传输以及运行交叉编译程序测试

文章目录 配置有线网口原因自动分配不行第一步 设置前先停止网络接口第二步 手动分配ip第三步 使配置的网口ip永久生效第四步 测试一下网络是否通了 SSH登陆文件传输以及运行交叉编译程序测试第一种借助基于SSH的命令行工具SCP传输文件第二种借助基于MobaXterm 软件直接上传测试…...

离线的方式:往Maven的本地仓库里安装依赖

jar文件及源码的绝对路径&#xff0c;gav坐标&#xff0c;打包方式&#xff0c;Maven本地仓库的路径 mvn install:install-file ^-DfileD:\hello-spring-boot-starter-1.0-SNAPSHOT.jar ^-DsourcesD:\hello-spring-boot-starter-1.0-SNAPSHOT-sources.jar ^-DgroupIdcom.examp…...

《深入浅出HTTPS​​​​​​​​​​​​​​​​​》读书笔记(22):密钥协商算法

《深入浅出HTTPS​​​​​​​​​​》读书笔记&#xff08;22&#xff09;&#xff1a;密钥协商算法 密钥的管理和分配是个难题&#xff0c;尤其是生成一个动态密钥更难&#xff0c;而密钥协商算法就可以解决密钥分配、存储、传输等问题。 在网络通信中&#xff0c;为了加密…...

SonarQube实战:通过pom.xml配置sonar-maven-plugin实现自动化代码扫描

1. 为什么需要自动化代码扫描 在软件开发过程中&#xff0c;代码质量是决定项目成败的关键因素之一。想象一下&#xff0c;你正在建造一栋房子&#xff0c;如果砖块质量不过关&#xff0c;水泥配比不对&#xff0c;即使外观再漂亮&#xff0c;也可能随时倒塌。代码也是如此&…...

漫画脸描述生成企业级安全方案:私有化部署保障原创角色数据不出域

漫画脸描述生成企业级安全方案&#xff1a;私有化部署保障原创角色数据不出域 1. 项目背景与核心价值 在二次元创作领域&#xff0c;角色设计是核心创作环节。传统的角色设计需要专业画师投入大量时间&#xff0c;从概念设计到细节刻画都需要反复修改。随着AI技术的发展&…...

如祺出行2025年营收53亿:网约车贡献97%收入 净亏2.9亿

雷递网 乐天 4月1日如祺出行科技有限公司&#xff08;股份代号&#xff1a;9680&#xff09;日前发布截至2025年12月31日的财报。财报显示&#xff0c;如祺出行2025年营收为52.86亿元&#xff0c;较上年同期的24.63亿元增长114.6%。如祺出行收入主要来自网约车服务&#xff0c;…...

OpenClaw备份恢复:千问3.5-35B-A3B-FP8配置迁移指南

OpenClaw备份恢复&#xff1a;千问3.5-35B-A3B-FP8配置迁移指南 1. 为什么需要备份OpenClaw配置 上周我的开发机突然硬盘故障&#xff0c;不得不重装系统。当我准备重新部署OpenClaw时&#xff0c;突然意识到一个严重问题——过去三个月精心调试的千问3.5模型配置、飞书机器人…...

html-to-docx:让HTML转Word不再头疼的开源解决方案

html-to-docx&#xff1a;让HTML转Word不再头疼的开源解决方案 【免费下载链接】html-to-docx HTML to DOCX converter 项目地址: https://gitcode.com/gh_mirrors/ht/html-to-docx 在数字化办公的浪潮中&#xff0c;文档格式转换已成为企业和个人的日常需求。据行业调研…...

Qwen3.5-2B边缘部署教程:ARM架构服务器上运行多模态模型详细步骤

Qwen3.5-2B边缘部署教程&#xff1a;ARM架构服务器上运行多模态模型详细步骤 1. 引言 Qwen3.5-2B是阿里云推出的轻量化多模态基础模型&#xff0c;属于Qwen3.5系列的小参数版本&#xff08;20亿参数&#xff09;。这款模型主打低功耗、低门槛部署&#xff0c;特别适配端侧和边…...

30个核心概念一次讲明白,小白也能轻松入门大模型(收藏版)

这几年&#xff0c;AI 几乎成了人人都在谈的话题。 有人在聊大模型&#xff0c;有人在说智能体&#xff0c;有人担心算力不够&#xff0c;也有人被“参数”、“微调”、“多模态”、“RAG”这些词绕得头晕。 结果就是&#xff1a;听了很多&#xff0c;越听越乱。 这篇文章是用尽…...

ESP32 RMT硬件驱动RF遥控库:替代rc-switch的异步OOK方案

1. 项目概述RCSwitchRmt 是一款专为 ESP32 系列微控制器设计的射频&#xff08;RF&#xff09;OOK&#xff08;On-Off Keying&#xff0c;开关键控&#xff09;通信库&#xff0c;其核心目标是提供一种现代、异步、非阻塞的硬件驱动型替代方案&#xff0c;以取代广为人知但已显…...

Pixelorama:从像素小白到艺术大师的完整指南

Pixelorama&#xff1a;从像素小白到艺术大师的完整指南 【免费下载链接】Pixelorama Unleash your creativity with Pixelorama, a powerful and accessible open-source pixel art multitool. Whether you want to create sprites, tiles, animations, or just express yours…...

从YOLOv8到RTDETR:如何将训练后的YOLO指标无缝转换为COCO格式

1. 为什么需要YOLO到COCO格式转换 当你用YOLOv8官方代码训练RTDETR模型时&#xff0c;会发现评估结果默认输出的是YOLO格式指标。但学术界和工业界普遍采用COCO评估标准&#xff0c;这就好比在中国用人民币交易&#xff0c;到了欧洲就得换成欧元。我在去年帮某无人机公司做目标…...