RT1052的GPIO

news2025/1/10 13:00:59

文章目录

  • GPIO资源
  • GPIO资料
    • GPIO复用器IOMUX
    • GPIO的控制块
  • GPIO配置
    • 宏定义的使用
  • GPIO函数使用
    • GPIO_PinRead 函数
    • GPIO_WritePinOutput函数

GPIO资源

在这里插入图片描述

  • 图中 P2、P3 和 P6 为 MCU 主 IO 引出口,这三组排针共引出了 97 个 IO 口,另外,通过:P4(P112&P113)和 P8(P300&P301)等 2 组排针引出 4 个 IO 口
    • P112 ,P113 之类的,是指:GPIO1_IO12 ,GPIO1_IO13 ,是 GPIO 的简化
      叫法
  • 底板上总共引出了 101个 IO。RT1052 总共有 127 个 IO,剩下的 26 个 IO,主要用在了 SDRAM、FlexSPI 等外设上面。

RT1052 的 IO 口总共分成 5 组:GPIO1~GPIO5

  • 其中:GPIO1、GPIO2 和 GPIO4 每组 32个 IO,GPIO3 只有 28 个 IO,GPIO5 最少,只有 3 个 IO,这样总共是 127 个 IO 口

GPIO资料

RT1052IO 有关知识的学习需要参考 RT1052 参考手册中的两章内容:《Chapter 34: IOMUXController(IOMUXC)》和《Chapter 32: General Purpose Controller(GPIO)》。

  • 第 34 章讲解怎么将一个指定的 IO 设置为你想要的功能
  • 第 32 章讲的是如果你要将一个 IO 用作 GPIO 的话该如何配置和使用。

GPIO复用器IOMUX

GPIO_AD_B0_03 是 LED0 使用的 IO的名字,这个 IO 有很多的功能,具体选择什么样的功能通过 IO 复用功能选择器(IOMUXC)来设置,这个就是前面说的第 34 章的内容

GPIO的控制块

RT1052 的 IO 口可以有很多个 Block(控制块),每个 Block 其实就是一个复用功能,GPIO功能也属于这些 Block 里面的一个。

  • IO 口通过一个叫 IOMUXC 的 IO 复用选择器来选择具体的功能(具体连接到那个 Block 上面),看一下 RT1052 的 IO 复用功能框图

在这里插入图片描述

图中①处,是一个 PAD(标记为 PAD1),也就是 RT1052 的一个 IO 引脚,每个 PAD 有 5路信号:

  • input_on,是输入开关信号,用于控制是否开启强制输入功能(用 SW_MUX_CTL_PAD 寄存器的 SION 位设置)。如果开启强制输入,则不管 IO 口选择哪个复用模式(ALT0~7),总是可以通过 GPIO_PSR 读取这个 IO 口的状态。

  • Dir,是方向控制信号,控制 IO 的输入/输出方向。

  • Data_out,是数据输出信号,用于控制 IO 口输出高/低电平。

  • Data_in,是数据输入信号,用于读取 IO 口的高/低电平。

注意:Dir、Data_out 和 Data_in 是由 IOMUXC 控制连接到具体哪个 Block 上面的,不一定是由 GIPO Block 控制,比如也可以由 SEMC Block 控制。
最后,下方的控制信号,来自 SW_PAD_CTL_PAD 寄存器(IO 引脚控制寄存器),它控制了这个 PAD 的具体属性(上拉/下拉/保持/速率/驱动能力等,在下一个知识点介绍)。

GPIO配置

gpio_pin_config_t key_config;

//SNVS_WAKEUP 配置为 ALT5,即 GPIO5_00
IOMUXC_SetPinMux(IOMUXC_SNVS_WAKEUP_GPIO5_IO00,0);

//配置 KEY 相关 IO 的功能
//低转换速度,关闭输出驱动,速度为 100Mhz,关闭开路功能,使能 pull/keepr
//选择 pull 功能,上拉 22K Ohm,关闭 Hyst
IOMUXC_SetPinConfig(IOMUXC_SNVS_WAKEUP_GPIO5_IO00,0xF080);

//KEY_UP 默认电平设置
key_config.direction=kGPIO_DigitalInput; //输入
key_config.interruptMode=kGPIO_NoIntmode; //不使用中断功能
key_config.outputLogic=1; //默认高电平
GPIO_PinInit(GPIO5,0,&key_config); //初始化 GPIO5_00

注意:当 IO 口初始化成 GPIO(ALT5 ),且 GPIO 设置成输入模式(GPIO_MODE_IN )时,输出缓冲器 失 能,相关配置(SPEED 、DSE 、SRE 、ODE 等)全部失效

宏定义的使用

这 4 个宏定义中的KEY0的值会跟随函数的变化而变化。

#define KEY0 GPIO_PinRead(GPIO1,5) //KEY0 按键 GPIO1_05
#define KEY1 GPIO_PinRead(GPIO5,1) //KEY1 按键 GPIO5_01
#define KEY2 GPIO_PinRead(GPIO3,26) //KEY2 按键 GPIO3_26
#define WK_UP GPIO_PinRead(GPIO5,0) //WK_UP 按键 GPIO5_00

一种485引脚定义的使用方法。

#define 485_DIR PCout(8);
485_DIR = 1;

这是跟上述用法相反的一种用法。

GPIO函数使用

GPIO_PinRead 函数

Reads the current input value of the GPIO port.

GPIO_PinRead(GPIO_Type * base, uint32_t pin)
GPIO_PinRead(GPIO1,5) 

GPIO_WritePinOutput函数

Sets the output level of the individual GPIO pin to logic 1 or 0。
设置输出电平

GPIO_WritePinOutput(GPIO_Type * base, uint32_t pin, uint8_t output)

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

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

相关文章

深度理解BeanFactory和ApplicationContext的区别

BeanFactory和ApplicationContext 接口及其子类图 这是Spring一部分的关系类图,从这个类图我们可以大致看出BeanFactory的和ApplicationContext的关系,BeanFactory是ApplicationContext的基类,BeanFactory所拥有的功能,ApplicationContext都拥有, 不仅如此,ApplicationContext还…

【Docker 的数据管理和网络通信】

目录 一、Docker 的数据管理1.数据卷2.数据卷容器 二、容器互联(使用centos镜像)三、Docker 镜像的创建1.基于现有镜像创建(1)首先启动一个镜像,在容器里做修改(2&#x…

C# Yolo+Onnx 号牌识别

参考 https://github.com/missxingwu/net_yolov5_plate https://github.com/ivilson/Yolov7net https://github.com/we0091234/Chinese_license_plate_detection_recognition 效果 项目 VS2022.net 4.8OpenCvSharp4Microsoft.ML.OnnxRuntime 部分代码 using System; using …

xDS解决的是什么样子的痛点

xDS基本概念 Istio发现模型 xDS是什么 xDS是一类发现服务的总称,包含LDS, RDS, CDS, EDS以及SDS。 Envoy通过xDS API可以动态获取Listener(监听器),Route(路由)&#x…

Python 集合 union()函数使用详解,Python合并集合

「作者主页」:士别三日wyx 「作者简介」:CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者 「推荐专栏」:小白零基础《Python入门到精通》 union函数使用详解 1、合并多个集合2、合并其他类型2.1、合并字符串2.2、合并列表…

性能测试Ⅲ

JMeter里面使用后端监听器,结合influxdb的时序数据库以及grafana可以打造性能测试的平台 后端监听器:把JMeter执行过程中的数据写到influxDB的时序数据库 influxD:时序数据库,用来存储JMeter发送请求的数据 Grafana :从…

k8s容器入门

一、k8s入门 1.什么是容器 降低虚拟机造成的物理主机资源浪费,提高物理主机的利用率,并能提供像虚拟机一样狼好的应用程序隔离运行环境,人们把这种轻量型的虚拟机,称为容器。 2. 容器的管理工具 主要用于容器的创建、启动、关…

优化transformer

使用transformer而导致的时间长,可能会由于self-attention计算Query和key的值才导致的时间长,也可能会因为feed forward中的计算导致时间长。这里我们只针对第一种情况下进行优化。 第一种情况:有些问题,我们可能不需要看整个句子…

Linux安装JDK、Redis、MySQL、RabbitMQ、Minio、Nginx.......

文章目录 一、环境准备二、安装JDK三、安装MySQL四、安装Redis三、安装RabbitMQ四、安装Minio五、安装Nginx特殊情况处理Centos7挂载磁盘服务器时间同步MySQL数据库时间同步安装解压软件修改数据库SQL模式 一、环境准备 下载镜像源 中科大镜像源下载至/opt目录下修改yum源为中…

蓝桥杯专题-真题版含答案-【贪吃蛇长度】【油漆面积】【绘制圆】【高次方数的尾数】

点击跳转专栏>Unity3D特效百例点击跳转专栏>案例项目实战源码点击跳转专栏>游戏脚本-辅助自动化点击跳转专栏>Android控件全解手册点击跳转专栏>Scratch编程案例点击跳转>软考全系列点击跳转>蓝桥系列 👉关于作者 专注于Android/Unity和各种游…

微服务初始

今天准备开始学习微服务,使用微服务肯定是因为他有好处。 首先了解到的三种架构,传统单体,集群架构,微服务架构 单体架构 有单点问题,如果宕机所有的服务都不可用所有业务的功能模块都聚集在一起,如果代…

POSTGRESQL PERPARE 事务提交方式,到底用还是不用

开头还是介绍一下群,如果感兴趣polardb ,mongodb ,mysql ,postgresql ,redis 等有问题,有需求都可以加群群内有各大数据库行业大咖,CTO,可以解决你的问题。加群请联系 liuaustin3 ,在新加的朋友会分到2群(共…

单Bank OTA升级:STM32G071 APP (二)

接上一篇文章:单Bank OTA升级:STM32G071 BootLoader (一):跳转链接 什么是单Bank升级:将Flash划分为以下3个区域。 BootLoader区:程序进行升级的引导程序,根据Upade_Flag来判断跳转Bank区运行程序或是接收…

spring复习:(52)注解方式下,ConfigurationClassPostProcessor是怎么被添加到容器的?

进入AnnotationConfigApplicationContext的构造方法: 进入AnnotatedBeanDefinitionReader的构造方法: 进入this(registry, getOrCreateEnvironment(registry));代码如下: 进入AnnotationConfigUtils.registerAnnotationConfigProcessors方…

贤鱼的刷题日常(数据结构栈学习)-1696:波兰表达式--(递归+栈双题解)题目详解

🏆今日学习目标: 🍀例题讲解1696:波兰表达式 ✅创作者:贤鱼 ⏰预计时间:25分钟 🎉个人主页:贤鱼的个人主页 🔥专栏系列:c 🍁贤鱼的个人社区,欢迎你…

MySQL用户管理详解

文章目录 用户管理创建用户更改密码mysql的权限分类授权实例撤销权力 mysql检查顺序相关文件信息 用户管理 创建用户 在MySQL中,创建用户是管理和授权数据库访问权限的重要操作。下面是创建用户的详细步骤: 连接到MySQL服务器:使用MySQL客户…

人员定位安全管控系统:提升安全管理水平的智能解决方案

在当今社会,人员安全管理成为各行各业关注的焦点。为了保障人员的安全和提高管理效率,人员定位安全管控系统应运而生。 人员定位安全管控系统采用多种定位技术来实现对人员位置的准确定位,如GPS(全球定位系统)、Wi-Fi…

强化学习论文《Deep Reinforcement Learning that Matters》笔记

文章目录 1. 简介2. 实验分析超参数网络架构Reward ScaleRandom Seeds and TrailsEnvironmentCodebases 3. Reporting Evaluation MetricsOnline view vs. Policy OptimizationConfidence BoundsPower AnalysisSignificance 4. 结论5. 参考资料 1. 简介 这篇2017年的论文 是强化…

【PHP】phpstudy添加的网站,访问出现 嗯… 无法访问此页面

使用phpstudy创建网站,只有localhost可以访问, 其他所有网站无法访问,可能是你的账户没有修改vhost的权限 找到 C:\Windows\System32\drivers\etc下的vhost文件, 1、右键属性 将只读去掉 2、把用户对此文件的控制权限全部勾上 …

解决直播间源码音视频不同步问题的有效方式

随着网络技术的发展和移动设备的普及,电视、电脑、手机等数码产品越来越智能,我们不管是在家或是在外面都可以运用不同的数码产品去看剧或是短视频等,但可能很多人遇到过这样一种情况:当我们在看剧或是短视频的时候,可…