博客
关于我
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/

    你可能感兴趣的文章
    nyoj------203三国志
    查看>>
    NYOJ-525 一道水题
    查看>>
    NYOJ127星际之门(一)
    查看>>
    nyoj58 最少步数
    查看>>
    N皇后问题
    查看>>
    N皇后问题
    查看>>
    n种方式教你用python读写excel等数据文件
    查看>>
    OAuth 2.0 MAC Tokens
    查看>>
    OAuth 及 移动端鉴权调研
    查看>>
    OAuth2 + Gateway统一认证一步步实现(公司项目能直接使用),密码模式&授权码模式
    查看>>
    OAuth2 Provider 项目常见问题解决方案
    查看>>
    OAuth2 vs JWT,到底怎么选?
    查看>>
    Vue.js 学习总结(14)—— Vue3 为什么推荐使用 ref 而不是 reactive
    查看>>
    oauth2-shiro 添加 redis 实现版本
    查看>>
    OAuth2.0_JWT令牌-生成令牌和校验令牌_Spring Security OAuth2.0认证授权---springcloud工作笔记148
    查看>>
    OAuth2.0_JWT令牌介绍_Spring Security OAuth2.0认证授权---springcloud工作笔记147
    查看>>
    OAuth2.0_介绍_Spring Security OAuth2.0认证授权---springcloud工作笔记137
    查看>>
    OAuth2.0_完善环境配置_把资源微服务客户端信息_授权码存入到数据库_Spring Security OAuth2.0认证授权---springcloud工作笔记149
    查看>>
    OAuth2.0_授权服务配置_Spring Security OAuth2.0认证授权---springcloud工作笔记140
    查看>>
    OAuth2.0_授权服务配置_三项内容_Spring Security OAuth2.0认证授权---springcloud工作笔记141
    查看>>