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

I.MX6U的GPIO配置和LED点灯实验。

以IOMUXC_SW_MUX_CTL_PAD_GPIO1_IO00此IO进行举例:

对于配置本质就是在寄存器中存放不同的值,读取数据也是从寄存器中读。此寄存器是CPU(I.MUX)的寄存器

  1. IO复用的模式:

    使用IOMUXC_SW_MUX_CTL_PAD_GPIO1_IO00对应的寄存器配置。

  2. IO复用对应的模式后,进行此IO模式下的配置。

    使用IOMUXC_SW_PAD_CTL_PAD_GPIO1_IO00对应的寄存器配置。

  3. 之前两个分别复用IO和配置IO但是不是配置GPIO,当 IO 用作 GPIO 的时候需要设置的寄存器,一共有八个:DR、GDIR、PSR、ICR1、ICR2、EDGE_SEL、IMR 和 ISR。每组IO都有以上8个寄存器。每组中的每个IO只需要一bit的位来进行配置一个功能,为什么是每组8个寄存器,其中每个寄存器32位,每bit控制对应的每个IO。

  4. 时钟使能,CCM_CCGR0是32位寄存器,每两位控制一个外设的时钟使能。一组GPIO为一个外设。其中CCM_CCGR0的31~32位配置GPIO2组32个IO口的时钟使能。

总结

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

正点原子led灯实验。汇编和C语言版

踩坑:

  • sd烧写只能/dev/sdb,不能分区,/dev/sbd1\
  • 没有设备硬写的话会出现, 出现设备无法挂载的情况,解决方案:删除/dev/sbd错误写入的设备。
  • 前置知识:ARM处理器具有7种运行模型。
  1. 汇编led点灯:

    根据I.MX6U 的参考手册,根据IO的名称,先对外设(一组GPIO)时钟使能,然后依次IO复用,IO属性配置,然后对复用的GPIO模式进行配置。

    对于外设寄存器的地址,我们将GPIO的寄存器的地址写入通用寄存器,然后对通用寄存器进行[r1]解应用,可以向外设寄存器中写入对于的值来进行配置接口功能。

  2. c语言led点灯。

    使用汇编start.s进行ARM的模式选择和mcu的启动,转到main函数运行。

    头文件main.h中使用宏表示外设寄存器的引用(先根据参考手册取地址再解引用)。然后进行配置。

    我们需要进行编译,链接,去掉重定向和符号表信息转换为bin文件,然后使用工具写道SD卡中。对于链接地址我们可以选择固定地址,也可以选择使用main.lds文件进行链接。这里的地址(0X87800000)指的是 CPU 的可寻址内存空间。也就是常规意义上的RAM。

http://www.xdnf.cn/news/278641.html

相关文章:

  • leetcode:最小覆盖字符串
  • 【操作系统】吸烟者问题
  • NHANES指标推荐:LC9
  • Android第四次面试总结之Java基础篇(补充)
  • 【NTN 卫星通信】NTN关键问题的一些解决方法(一)
  • 55认知干货:深空产业
  • 2022年第十三届蓝桥杯省赛B组Java题解
  • 128. 最长连续序列
  • 【人工智能】大模型安全的深度剖析:DeepSeek漏洞分析与防护实践
  • 牛客周赛91 D题(数组4.0) 题解
  • 如何用更少的显存训练 PyTorch 模型
  • 【Java JUnit单元测试框架-60】深入理解JUnit:Java单元测试的艺术与实践
  • Spring AI 实战:第九章、Spring AI MCP之万站直通
  • HTML5实战指南:语义化标签与表单表格高级应用
  • AI日报 · 2025年5月04日|Hugging Face 启动 MCP 全球创新挑战赛
  • 《工业社会的诞生》章节
  • 相向双指针-16. 最接近的三数之和
  • 基于AWS Marketplace的快速解决方案:从选型到部署实战
  • OpenFAST 开源软件介绍
  • 大学之大:高丽大学2025.5.4
  • Java并发编程-多线程基础(三)
  • 在 Ubuntu 系统中,查看已安装程序的方法
  • Redis-----认识NoSQL
  • 网络开发基础(游戏)之 心跳机制
  • C++ 多态:原理、实现与应用
  • 科学养生,健康生活
  • Python容器与循环:数据处理的双剑合璧
  • 虚函数 vs 纯虚函数 vs 静态函数(C++)
  • 原型模式(Prototype Pattern)
  • drawDB:打造高效数据库设计流程