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

Zynq-7000、FMQL45T900的GPIO控制(五)---linux应用层配置GPIO输出控制

上文中详细阐述了对应原理图MIO/EMIO的编号,怎么计算获取linux下gpio的编号

 本文涉及C代码上传,下载地址

Zynq-7000、FMQL45T900的GPIO控制c语言代码资源-CSDN文库

本文详细记录一下针对获取到gpio的编号,进行配置输出模式,并进行C语言编码控制

这里以FMQL45T900为例,zynq-7000的操作流程都是一样的,只是需要操作的GPIO的管脚计算不同

主要步骤是,导出对应GPIO对应节点,配置方向、反复拉高拉低管脚电平

	gpio_export(&test_pin_mesg);//生成gpio节点gpio_direction(&test_pin_mesg);//设置方向while(1){gpio_write(&test_pin_mesg, 1);sleep(1);gpio_write(&test_pin_mesg, 0);sleep(1);}

shell指令操作

导出节点

echo 434 > /sys/class/gpio/export

查看节点

ls /sys/class/gpio/gpio434/

设置输出模式

echo out > /sys/class/gpio/gpio434/direction

查看配置模式

cat /sys/class/gpio/gpio434/direction

设置管脚电平

echo 1 > /sys/class/gpio/gpio434/value

FMQL45T900实际开发板上进行测试如下图,zynq-7000的流程也是一样,只是导出的GPIO节点不一样

使用的测试C代码如下

编译脚本文件

#!/bin/bashCC=arm-linux-gnueabihf-gcc${CC} gpio_test_output.c -o gpio_test_output

涉及的关键函数


static int gpio_export(struct pin_mesg* mesg){  char name[4];  int fd,len;  fd = open("/sys/class/gpio/export", O_WRONLY);if (fd < 0) {perror("open export");return(-1);}len = sprintf(name, "%d", mesg->pin);  dbg_info("gpiopin = gpio%s\n",name);if (write(fd, name, sizeof(name)) < 0) {  perror("write export");return -1;  }  close(fd);  return 0;  
}  
static int gpio_direction(struct pin_mesg* mesg){  char path[64];  int fd,res;char *dir;if(mesg->inout_flags & IN)dir = "in";if(mesg->inout_flags & OUT)dir = "out";sprintf(path,"/sys/class/gpio/gpio%d/direction", mesg->pin);dbg_info("direction path: %s,direction = %s\n", path, dir);  fd = open(path, O_WRONLY);if (fd < 0) {perror("open direction");return -1;  }  res = write(fd, dir, sizeof(dir));if (res <= 0) {perror("write direction");return -1;}close(fd);return 0;
}

开发板实际测试结果如下图

使用的C代码,下载地址

Zynq-7000、FMQL45T900的GPIO控制c语言代码资源-CSDN文库

用这几篇帖子深入探讨一下ZYNQ-7000/FMQL45T900的GPIO相关设计,都说GPIO最简单,这样记录下来起始还是很费劲的。可以根根据需求,直接跳转到相关的内容

Zynq-7000、FMQL45T900的GPIO控制(一)-----SDK配置GPIO普通输入输出模式,以及GPIO编号_大牛攻城狮的博客-CSDN博客

Zynq-7000、FMQL45T900的GPIO控制(二)-----SDK配置GPIO外部中断输入_大牛攻城狮的博客-CSDN博客

Zynq-7000、FMQL45T900的GPIO控制(三)---linux管脚编号计算_大牛攻城狮的博客-CSDN博客

Zynq-7000、FMQL45T900的GPIO控制(四)---linux应用层配置GPIO输入控制_大牛攻城狮的博客-CSDN博客

Zynq-7000、FMQL45T900的GPIO控制(五)---linux应用层配置GPIO输出控制_大牛攻城狮的博客-CSDN博客

Zynq-7000、FMQL45T900的GPIO控制(六)---linux驱动层配置GPIO输入输出控制_大牛攻城狮的博客-CSDN博客

(1条消息) Zynq-7000、FMQL45T900的GPIO控制(七)---linux驱动层配置GPIO中断输入_大牛攻城狮的博客-CSDN博客

相关文章:

Zynq-7000、FMQL45T900的GPIO控制(五)---linux应用层配置GPIO输出控制

上文中详细阐述了对应原理图MIO/EMIO的编号&#xff0c;怎么计算获取linux下gpio的编号 本文涉及C代码上传&#xff0c;下载地址 Zynq-7000、FMQL45T900的GPIO控制c语言代码资源-CSDN文库 本文详细记录一下针对获取到gpio的编号&#xff0c;进行配置输出模式&#xff0c;并进…...

带你搞懂人工智能、机器学习和深度学习!

不少高校的小伙伴找我聊入门人工智能该怎么起步&#xff0c;如何快速入门&#xff0c;多长时间能成长为中高级工程师&#xff08;聊下来感觉大多数学生党就是焦虑&#xff0c;毕业即失业&#xff0c;尤其现在就业环境这么差&#xff09;&#xff0c;但聊到最后&#xff0c;很多…...

Android 11.0 framework中Launcher的启动流程分析

1.前言 在11.0的系统rom定制化开发中,在rom定制过程中,在对于开发默认Launcher功能,解决开机动画后黑屏,了解fallbackhome机制等等 对于launcher的启动流程来说很重要,接下来就来分析下launcher的启动流程 2.framework中Launcher的启动流程分析的核心类 frameworks/ba…...

2023年第十五届华中杯赛题C 题 空气质量预测与预警

2023年五一假期期间&#xff0c;数学建模竞赛就有四场&#xff0c;各种比赛各种需求应接不暇。因此&#xff0c;对于本次浅析有不足的地方欢迎大家指出。为了更好的帮助大家华中杯参赛&#xff0c;下面带来&#xff0c;C题详细版思路。由于C题的难度&#xff0c;注定选题人数将…...

Go官方指南(一)包、变量、函数

import "time" 获取当前系统时间&#xff1a;time.Now() 每个 Go 程序都是由包构成的 按照约定 &#xff0c;包名与导入路径的最后一个元素一致。例如&#xff0c;"math/rand"包中的源码均以 package rand 语句开始 在 Go 中&#xff0c;如果一个名字以…...

liunx笔记

快捷键 #移动到行首 ctrla #移动到行尾 ctrle #删除光标之前的字符 ctrlu #删除光标之后的字符 ctrlk #清屏 ctrll正则表达式 正则中普通常用的元字符 元字符功能.匹配除了换行符以外的任意单个字符*前导字符出现0次或连续多次.*任意长度字符^行首(以…开头)&#xff0c;如…...

vue3 封装ECharts组件

一、前言 前端开发需要经常使用ECharts图表渲染数据信息&#xff0c;在一个项目中我们经常需要使用多个图表&#xff0c;选择封装ECharts组件复用的方式可以减少代码量&#xff0c;增加开发效率。 ECharts图表大家应该用的都比较多&#xff0c;基础的用法就不细说了&#xff…...

Spring Security 6.0系列【30】授权服务器篇之JOSE规范

有道无术,术尚可求,有术无道,止于术。 本系列Spring Boot 版本 3.0.4 本系列Spring Security 版本 6.0.2 本系列Spring Authorization Server 版本 1.0.2 源码地址:https://gitee.com/pearl-organization/study-spring-security-demo 文章目录 1. 前言2. JOSE 规范3. JW…...

维度表设计原则

维度的作用一般是查询约束、分类汇总以及排序等&#xff0c;我们在进行维度表设计时&#xff0c;应当提前考虑&#xff1a; &#xff08;1&#xff09;维度属性尽量丰富&#xff0c;为数据使用打下基础 比如淘宝商品维度有近百个维度属性&#xff0c;为下游的数据统计、分析、…...

【requests模块上】——02爬虫基础——如桃花来

目录索引 requests请求&#xff1a;1. 基于get请求&#xff1a;*基础写法&#xff1a;**带参数的get请求&#xff1a;* 2. 基于post请求&#xff1a; 获取数据&#xff1a;1. 获取json数据&#xff1a;2. 获取二进制数据&#xff1a; 初步伪装小爬虫——添加headers: 引入&…...

Springboot +Flowable,详细解释啥叫流程实例(一)

一.简介 上一篇中学习了Flowable 中的流程模板&#xff08;流程定义&#xff09;的部署问题&#xff0c;这一篇来学习什么叫流程实例。 部署之后的流程模板&#xff0c;还不能直接运行&#xff0c;例如我们部署了一个请假流程&#xff0c;现在 张三想要请假&#xff0c;他就需…...

信息安全复习十:Web与电子商务安全

一、章节梗概 1.信息安全的学科内容 2.Web和电子商务安全问题提出 3.安全套接字协议SSL与传输层安全协议TLS 4.安全电子交易(SET)简要介绍 复习&#xff1a; 密码学内容&#xff1a;对称密钥密码、公开密钥密码、报文鉴别 PKI&#xff1a;数字签名、数字证书、信任关系 身份认…...

flutter 启动其他app server或者页面失败

1.目标Service 设置 android:exported"true" 2.目标Service需要声明自定义权限。客户端需要声明权限。 3.目标Service需要添加<intent-filter></intent-filter> 检查以上的声明和权限&#xff0c; 如果还是不行 说明是 Android 11引入了*包可见性*’ …...

【linux-进程2】进程控制

&#x1f308;环境变量 &#x1f344;初识 系统带的命令可以直接运行&#xff08;ls ll命令等&#xff09;&#xff0c;但是我们自己写的命令必须要带上路径才能运行&#xff08;./myproc&#xff09;&#xff0c;这是什么原因导致的&#xff1f;如果我们也想自己写的命令直接…...

【五一创作】多域名环境和Office 365混合部署方案

目录 一、多域名环境是什么? 二、Office 365是什么? 三、多域名环境与Office 365的结合 总结 一、多域名环境是什么? 多域名环境指的是一个企业拥有多个域名,这些域名可能隶属于不同的子公司、部门或者品牌,但是都归属于同一个母公司。例如,一个中国电信集团旗下有…...

Vue:路由route

一、概念 1、组成 每一个路由都由 key 和 value 组成。 keyvalue路由 route。 2、本质 路由的本质&#xff1a;一个路由表达了一组对应关系。路由器的本质&#xff1a;管理多组对应关系。 3、路由的工作原理 点击之后路径变化——>路由器监视到变化——>根据路径…...

Windows系统被faust勒索病毒攻击勒索病毒解密服务器与数据库解密恢复

在近期&#xff0c;一种名为faust后缀的勒索病毒威胁已经引起了全球计算机系统安全领域的关注。faust勒索病毒是一种基于RSA加密算法的恶意软件&#xff0c;能够加密目标计算机系统上的所有文件&#xff0c;并向用户勒索赎金来承诺解密恢复操作。下面为大家介绍一下Windows系统…...

Java面试题总结 | Java面试题总结7- Redis模块(持续更新)

Redis 文章目录 Redisredis的线程模型Redis的Mysql的区别Redis和传统的关系型数据库有什么不同&#xff1f;Redis常见的数据结构zset数据结构Redis中rehash过程redis为什么不考虑线程安全的问题呢Redis单线程为什么还能这么快&#xff1f;为什么Redis是单线程的&#xff1f;red…...

虹科案例 | 如何通过智能、非接触式测量解决方案,提高起重机的安全和效率?

PART 1 案例详情 自建造初期以来&#xff0c;起重机行业已经走了很长一段路。技术的使用在行业进步中发挥了重要作用&#xff0c;降低了使用桥式起重机的危险性。特别是&#xff0c;智能、非接触式测量解决方案通过使用高架升降机更安全、更高效、更高效&#xff0c;为行业的进…...

流程图拖拽视觉编程-流程编辑器

目录 一、简介 二、流程编辑器-视图实现 三、参考资料 一、简介 前期文章&#xff1a; 流程图拖拽视觉编程--概述_Jason~shen的博客-CSDN博客 本期内容&#xff1a; 本期将介绍流程编辑器模块的实现方法&#xff0c;效果图如下所示。该模块基于QT Graphics/View实现&…...

Cursor实现用excel数据填充word模版的方法

cursor主页&#xff1a;https://www.cursor.com/ 任务目标&#xff1a;把excel格式的数据里的单元格&#xff0c;按照某一个固定模版填充到word中 文章目录 注意事项逐步生成程序1. 确定格式2. 调试程序 注意事项 直接给一个excel文件和最终呈现的word文件的示例&#xff0c;…...

docker详细操作--未完待续

docker介绍 docker官网: Docker&#xff1a;加速容器应用程序开发 harbor官网&#xff1a;Harbor - Harbor 中文 使用docker加速器: Docker镜像极速下载服务 - 毫秒镜像 是什么 Docker 是一种开源的容器化平台&#xff0c;用于将应用程序及其依赖项&#xff08;如库、运行时环…...

基于距离变化能量开销动态调整的WSN低功耗拓扑控制开销算法matlab仿真

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.算法仿真参数 5.算法理论概述 6.参考文献 7.完整程序 1.程序功能描述 通过动态调整节点通信的能量开销&#xff0c;平衡网络负载&#xff0c;延长WSN生命周期。具体通过建立基于距离的能量消耗模型&am…...

《用户共鸣指数(E)驱动品牌大模型种草:如何抢占大模型搜索结果情感高地》

在注意力分散、内容高度同质化的时代&#xff0c;情感连接已成为品牌破圈的关键通道。我们在服务大量品牌客户的过程中发现&#xff0c;消费者对内容的“有感”程度&#xff0c;正日益成为影响品牌传播效率与转化率的核心变量。在生成式AI驱动的内容生成与推荐环境中&#xff0…...

基于当前项目通过npm包形式暴露公共组件

1.package.sjon文件配置 其中xh-flowable就是暴露出去的npm包名 2.创建tpyes文件夹&#xff0c;并新增内容 3.创建package文件夹...

基于Docker Compose部署Java微服务项目

一. 创建根项目 根项目&#xff08;父项目&#xff09;主要用于依赖管理 一些需要注意的点&#xff1a; 打包方式需要为 pom<modules>里需要注册子模块不要引入maven的打包插件&#xff0c;否则打包时会出问题 <?xml version"1.0" encoding"UTF-8…...

.Net Framework 4/C# 关键字(非常用,持续更新...)

一、is 关键字 is 关键字用于检查对象是否于给定类型兼容,如果兼容将返回 true,如果不兼容则返回 false,在进行类型转换前,可以先使用 is 关键字判断对象是否与指定类型兼容,如果兼容才进行转换,这样的转换是安全的。 例如有:首先创建一个字符串对象,然后将字符串对象隐…...

Git 3天2K星标:Datawhale 的 Happy-LLM 项目介绍(附教程)

引言 在人工智能飞速发展的今天&#xff0c;大语言模型&#xff08;Large Language Models, LLMs&#xff09;已成为技术领域的焦点。从智能写作到代码生成&#xff0c;LLM 的应用场景不断扩展&#xff0c;深刻改变了我们的工作和生活方式。然而&#xff0c;理解这些模型的内部…...

从 GreenPlum 到镜舟数据库:杭银消费金融湖仓一体转型实践

作者&#xff1a;吴岐诗&#xff0c;杭银消费金融大数据应用开发工程师 本文整理自杭银消费金融大数据应用开发工程师在StarRocks Summit Asia 2024的分享 引言&#xff1a;融合数据湖与数仓的创新之路 在数字金融时代&#xff0c;数据已成为金融机构的核心竞争力。杭银消费金…...

嵌入式常见 CPU 架构

架构类型架构厂商芯片厂商典型芯片特点与应用场景PICRISC (8/16 位)MicrochipMicrochipPIC16F877A、PIC18F4550简化指令集&#xff0c;单周期执行&#xff1b;低功耗、CIP 独立外设&#xff1b;用于家电、小电机控制、安防面板等嵌入式场景8051CISC (8 位)Intel&#xff08;原始…...