【linux学习---1】点亮一个LED---驱动一个GPIO

news2025/1/11 9:05:03

文章目录

  • 1、原理图找对应引脚
  • 2、IO复用
  • 3、IO配置
  • 4、GPIO配置
  • 5、GPIO时钟使能
  • 6、总结

1、原理图找对应引脚

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
从上图 可以看出, 蜂鸣器 接到了 BEEP 上, BEEP 就是 GPIO5_IO05

2、IO复用

查找IMX6UL参考手册
在这里插入图片描述
和 STM32一样,如果某个 IO 要作为某个外设引脚使用的话, 是需要配置复用寄存器的。

3、IO配置

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4、GPIO配置

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
此寄存器是 32 位的,一个 GPIO 组最大只有 32 个 IO,因此 DR 寄存器中的每个位都对应
一个 GPIO。当 GPIO 被配置为输出功能以后,向指定的位写入数据那么相应的 IO 就会输出相
应的高低电平,比如要设置 GPIO1_IO00 输出高电平,那么就应该设置 GPIO1.DR=1。
在这里插入图片描述
GDIR 寄存器也是 32 位的,此寄存器用来设置某个 IO 的工作方向,是输入还是输出。同
样的,每个 IO 对应一个位,如果要设置 GPIO 为输入的话就设置相应的位为 0,如果要设置为
输出的话就设置为 1。比如要设置 GPIO1_IO00 为输入,那么 GPIO1.GDIR=0;
同样的 PSR 寄存器也是一个 GPIO 对应一个位,读取相应的位即可获取对应的 GPIO 的状
态,也就是 GPIO 的高低电平值。功能和输入状态下的 DR 寄存器一样
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
IMR 寄存器也是一个 GPIO 对应一个位, IMR 寄存器用来控制 GPIO 的中断禁止和使能,
如果使能某个 GPIO 的中断,那么设置相应的位为 1 即可,反之,如果要禁止中断,那么就设
置相应的位为 0 即可。例如,要使能 GPIO1_IO00 的中断,那么就可以设置 GPIO1.MIR=1 即

在这里插入图片描述
ISR 寄存器也是 32 位寄存器,一个 GPIO 对应一个位,只要某个 GPIO 的中断发生,那么
ISR 中相应的位就会被置 1。所以,我们可以通过读取 ISR 寄存器来判断 GPIO 中断是否发生,
相当于 ISR 中的这些位就是中断标志位。当我们处理完中断以后,必须清除中断标志位,清除
方法就是向 ISR 中相应的位写 1,也就是写 1 清零。
在这里插入图片描述
EDGE_SEL 寄存器用来设置边沿中断,这个寄存器会覆盖 ICR1 和 ICR2 的设置,同样是一
个 GPIO 对应一个位。如果相应的位被置 1,那么就相当与设置了对应的 GPIO 是上升沿和下降
沿(双边沿)触发。例如,我们设置 GPIO1.EDGE_SEL=1,那么就表示 GPIO1_IO01 是双边沿触
发中断,无论 GFPIO1_CR1 的设置为多少,都是双边沿触发。

5、GPIO时钟使能

在这里插入图片描述
在这里插入图片描述

6、总结

总结一下,要将 I.MX6UL的 IO 作为 GPIO 使用,我们需要一下
几步:
①、使能 GPIO 对应的时钟。
②、设置寄存器 IOMUXC_SW_MUX_CTL_PAD_XX_XX,设置 IO 的复用功能,使其复用
为 GPIO 功能。
③、设置寄存器 IOMUXC_SW_PAD_CTL_PAD_XX_XX,设置 IO 的上下拉、速度等等。
④、第②步已经将 IO 复用为了 GPIO 功能,所以需要配置 GPIO,设置输入/输出、是否使
用中断、默认输出电平等。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1889225.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[不可抗拒的吸引]韩漫日漫无删减完整版,免费在线观看漫画

[不可抗拒的吸引]韩漫日漫无删减完整版,免费在线观看漫画 不能多说,怕审-核不过,自己看图吧。 食用方法: https://blog.csdn.net/qq_42098517/article/details/140079915 https://gitee.com/zzwuweijun/manhua/blob/master/READ…

入门Axure:快速掌握原型设计技能

2002 年,维克托和马丁在旧金山湾区的一家初创公司工作,发现自己一再被软件开发生命周期的限制所困扰,而且产品团队在编写规范之前很难评估他们的解决方案,开发人员经常不理解(或不阅读)给出的规范&#xff…

springboot城市菜园共享系统00524

目 录 摘要 1 绪论 1.1 研究背景与意义 1.2 国内外研究现状和发展趋势 1.3论文结构与章节安排 2 城市菜园共享系统系统分析 2.1 可行性分析 2.2 系统流程分析 2.2.1 数据增加流程 2.2.2 数据修改流程 2.2.3 数据删除流程 2.3 系统功能分析 2.3.1 功能性分析 2.3.…

Guitar Pro怎么把和弦图放在谱子上方 Guitar Pro怎么设置和弦

在音乐中,和弦是音乐的基本单位。而吉他和弦是指在吉他上按压弦与弹奏弦的组合,我们可以在乐谱中通过和弦图来表现吉他的按压点位,以及弹奏的弦。下面我们看看Guitar Pro怎么把和弦图放在谱子上方,Guitar Pro怎么设置和弦的相关内…

Python+pytest接口自动化之token关联登录的实现

在PC端登录公司的后台管理系统或在手机上登录某个APP时,经常会发现登录成功后,返回参数中会包含token,它的值为一段较长的字符串,而后续去请求的请求头中都需要带上这个token作为参数,否则就提示需要先登录。 这其实就…

【Python】从文本字符串中提取数字、电话号码、日期、网址的方法汇总(全!)

我们在做数据清洗的时候,有时候会遇到将一堆文本中提取我们需要的内容,最常见的是,从一大段文本中提取出数字、电话号码、日期、网址等。而在Python中,正则表达式re,则可以满足我们从文本中提取数字、电话号码和日期等…

测试Andrew NG的语言翻译Agent

我正在测试 Andrew Ng 的语言翻译 A​​I 代理系统及其在逆变换下的稳定性。 给定源语言的文本,我们应用翻译函数 f,然后应用 f 的逆。它应该是不变的: 但是,数学与语言翻译有什么关系? 在完美的系统中,从…

德翔海运核心盈利指标大幅下滑,大额分红56亿不缺钱仍募资补流

《港湾商业观察》黄懿 5月30日,航运公司德翔海运(TS Lines,下称“德翔海运”)再一次向港交所递交招股书,计划在主板挂牌上市,由摩根大通和招商证券国际担任联席保荐人。 据悉,2022年至2023年&…

【js】数组元素拼接、数组元素类型转换

一、数组元素拼接 二、数组元素类型转换 1、字符串数组 转换成 数字型数组 [1, 2, 3].map(Number) // [1,2,3] 2、数字型数组 转换成 字符串数组 [1, 2, 3].map(String) // [1, 2, 3]

Java语法 小白入门参考资料 数组

数组的基本概念 数组:可以看成是相同类型元素的一个集合。在内存中是一段连续的空间。 比如现实中的车库: 在java中,包含6个整形类型元素的数组,就相当于上图中连在一起的6个车位,从上图中可以看到: 数组…

【C++】开源:量化金融计算库QuantLib配置与使用

😏★,:.☆( ̄▽ ̄)/$:.★ 😏 这篇文章主要介绍量化交易库QuantLib配置与使用。 无专精则不能成,无涉猎则不能通。——梁启超 欢迎来到我的博客,一起学习,共同进步。 喜欢的朋友可以关注一下&#…

【linux】网络基础(3)——tcp协议

文章目录 TCP协议概括TCP头部格式TCP连接管理建立连接(三次握手)数据传输确认应答机制捎带应答 滑动窗口丢包问题 拥塞控制延时应达 终止连接(四次挥手) TCP协议概括 TCP是一个面向连接的协议,在传输数据之前需要建立连…

Zabbix 配置进程监控

Zabbix 进程监控介绍 Zabbix可以很方便地监控服务器上的各种进程。在使用Zabbix进行进程监控时,被监控的节点通常需要安装Zabbix Agent。Zabbix Agent 是一个轻量级的代理程序,安装在被监控的主机上,用于收集系统的各种性能数据和指标&#…

OpenBMB × Hugging Face × THUNLP,大模型课开班丨伙伴活动推荐

2022 年,OpenBMB 开源社区联合 THUNLP 开国内大模型公开课先河,全网百万级播放量,已帮助无数大模型爱好者从入门到精通。 这个夏天,OpenBMB 携手 HuggingFace、THUNLP 和面壁智能,推出大模型公开课第二季。全球知名开…

vue实现一个简单的审批绘制功能

1、vue代码 <div class"approval"><div class"approval_ul" v-for"(item,key) in approvalList" :key"key"><div><el-radio-group v-model"item.jointlySign"><el-radio label"1">…

人大出品!最适合大模型初学者人手的LLM大语言模型综述,爆火全网

今天给大家推荐一本大模型&#xff08;LLM&#xff09;这块的一本外文书&#xff0c;经过整理已经出中文版了&#xff0c;就是这本《大型语言模型综述》&#xff01;本书在git上有9.2k star&#xff0c;还是很不错的一本大模型方面的书。 本教程内容主要内容&#xff1a;中文版…

外挂级OCR神器:免费文档解析、表格识别、手写识别、古籍识别、PDF转Word

智能文档解析&#xff1a;大模型友好的文档解析工具 PDF转Markdown 支持将任意格式的文件&#xff08;图片、PDF、Doc&#xff0f;Docx、网页等&#xff09;解析为Markdown或Json格式&#xff0c;以对LLM友好的方式呈现。 更高速度&#xff1a;100页PDF最快1.5s完成解析 更大…

Qt/C++编写地图应用/离线地图下载/路径规划/轨迹回放/海量点/坐标转换

一、前言说明 这个地图组件写了很多年了&#xff0c;最初设计的比较粗糙&#xff0c;最开始只是为了满足项目需要&#xff0c;并没有考虑太多拓展性&#xff0c;比如最初都是按照百度地图写死在代码中&#xff0c;经过这几年大量的现场实际应用&#xff0c;以及大量的用户提出…

1.7-自然语言的分布式表示-skip-gram模型代码实现

文章目录 1 skip-gram模型的实现1.1模型结构的实现1.2前向传播的实现1.3反向传播的实现 2 skip-gram模型的计算与学习3总结 书上提供了skip-gram模型的代码实现&#xff0c;但是没有去讲解&#xff1b;这里我们自己来看看他提供的代码&#xff1b;看代码的时候&#xff0c;尤其…

yarn不同操作系统的安装与配置

Yarn 是一个快速、可靠且安全的依赖包管理工具&#xff0c;用于替代 npm。以下是在不同操作系统上安装和配置 Yarn 的步骤。 1. 安装 Node.js 在安装 Yarn 之前&#xff0c;请确保已经安装了 Node.js&#xff0c;因为 Yarn 需要 Node.js 环境。你可以在 Node.js — Run JavaSc…