博客
关于我
ARM:嵌入式系统之LED裸板驱动
阅读量:723 次
发布时间:2019-03-21

本文共 1102 字,大约阅读时间需要 3 分钟。

GPIO编程之LED裸板驱动

开始

###illos液面驱动实验

本次实验的目标是学习GPIO编程并掌握LED裸板驱动的原理。通过实验,我们将通过UBOOT命令和C语言编程实现LED灯的驱动控制。

.GPIO是什么?

GPIO,全称为General-Purpose Input/Output(通用输入输出端口),是ARM架构中的核心 peripheral。每个GPIO引脚都可作为输入或输出端口,支持多种模式,包括高阻态、低阻态、低电平检测等。

实验内容

实验目的

掌握GPIO编程方法,并理解LED驱动的工作原理。

实验题目

  • 使用UBOOT命令通过内存写入(mw)实现点亮实验板的一个LED灯。
  • 编写C程序实现对实验板上的4个LED灯轮流点亮。
  • 编写汇编程序实现与第2题相同的功能。
  • 实验步骤

    第一题:通过UBOOT实现点亮一个LED灯

  • 在终端中启动Kermit并进入UBOOT环境。
  • 执行命令:mw 0xe0200280 0x1 将第一个LED灯点亮。
  • 其他命令可参考以下内容:
    • 点亮前两个LED灯:mw 0xe0200280 0x11
    • 点亮前三个LED灯:mw 0x02200280 0x111
    • 点亮四个LED灯:mw 0xe0200280 0x1111
  • 第二题:编写C程序实现LED轮流点亮

  • 需要了解实验板的硬件布局,发现LED位于GPJ2引脚(GPJ2_0~3)。
  • 通过查看CPU手册,获取到相关寄存器地址0xe0200280,对该寄存器进行操作。
  • 在C语言程序中使用oe位配置GPIO引脚为输出,并通过设置对应位使LED点亮。
  • 编写程序2c.c,实现四个LED按顺序点亮。
  • // Declare I/O portsvolatile unsigned char gpj2con = 0x00;// Set GPJ2CON(0xe0200280) to 0x1111 for outputgpj2con = 0xe0200280 + 0x1111;int main() {    // Perform LED sequence control    //具体实现要根据硬件和控制逻辑进行编码    return 0;}

    第三题:编写汇编程序实现同样的功能

  • 与C程序逻辑相同,直接编写汇编代码配置GPIO输出。
  • 使用LDNOP指令实现每个LED的控制逻辑。
  • 实验结果展示

    通过以上步骤,成功实现了LED灯的点亮控制,并且完成了四个LED的轮流驱动。

    总结

    实验过程中需要反复查阅手册和硬件设计文档,搞清楚每个控制位的作用和具体实现方法。对于新手来说,GPIO编程可能需要较多的尝试和调试才能掌握。

    转载地址:http://uozgz.baihongyu.com/

    你可能感兴趣的文章
    Python Serial:如何使用 read 或 readline 函数一次读取多个字符
    查看>>
    Python set([]) 如何检查两个对象是否相等?一个对象需要定义哪些方法来自定义它?
    查看>>
    Python setup.py:数据文件无法复制目录:不存在或不是常规文件
    查看>>
    Python setuptools sdist:仅安装版本化文件
    查看>>
    Python Shell下使用matplotlib
    查看>>
    Python Slice How-to,我知道Python Slice,但我怎么才能使用内置的Slice对象呢?
    查看>>
    python socket分包发送数据
    查看>>
    python socket模块_Python socket模块实现TCP服务端客户端
    查看>>
    Python SOCKS5代理客户端HTTPS
    查看>>
    Python Soc网络分析:通过使用函数迭代列表来计算机会网络
    查看>>
    Python SQL和NoSQL数据库操作实战
    查看>>
    python stdout flush_sys.stdout.flush()方法的用法
    查看>>
    python string 运算
    查看>>
    Python str与bytes之间的转换
    查看>>
    Python subprocess ffmpeg
    查看>>
    python subprocess Permission denied Errno 13
    查看>>
    Python subprocess.call - 将变量添加到 subprocess.call
    查看>>
    Python Subprocess.Popen 从一个线程
    查看>>
    Python subprocess.Popen 作为 Windows 上的不同用户
    查看>>
    Python subprocess.Popen() 等待完成
    查看>>