zoukankan      html  css  js  c++  java
  • mini2440 LED灯裸机硬件控制程序

    查找mini2440的原理图,找到LED部分的原理图:

     

    然后查找nLED_1到nLED_4分别连接的S3C2440的引脚:

     

    由图可知:

    nLED_1---GPB5

    nLED_2---GPB6

    nLED_3---GPB7

    nLED_4---GPB8

    在S3C2440的引脚划分中,这四个引脚都属于Port B,因此可以通过配置Port B的控制寄存器对这四个引脚的功能进行配置

     

    如果要让LED灯亮,nLED_1到nLED_4端需要低电平,因此GPB5到GPB8引脚需要:

    (1)输出:GPBCON

     

    因此,GPBCON寄存器的11,13,15,17位要设置为0,而10,12,14,16位要设置为1,而且我们还知道GPBCON寄存器的地址为0x56000010:

    #define GPBCON (*((volatile unsigned long*)0x56000010))
    // GPBCON = 0000 0000 0000 0000 0000 0000 0000 0000
    // GPBCON = 0000 0000 0000 0001 0101 0100 0000 0000
    GPBCON = 0x00015400;

     (2)低电平;

     

    由此可知,在引脚设置为输出时,引脚的状态与寄存器中对应位的状态保持一致,因此,要将引脚设置为低电平,我们只需要将寄存器中的5、6、7、8位设置为低电平即可:

    #define GPBDAT (*((volatile unsigned long*)0x56000014))
    #define LEDS (1<<5 | 1<<6 | 1<<7 | 1<<8)
    GPBDAT = GPBDAT & (~LEDS);

    这样,就可以在这四个引脚上面都输出低电平,四个LED灯就全部亮了。

  • 相关阅读:
    vc枚举本机端口信息API
    xmpp 与服务器连接并身份验证成功
    xmpp 常见错误 一
    xmpp 环境配置
    使用宏定义创建单例
    iOS知识列表
    ios sqlite 简单使用
    关于游戏
    开通博客园博客的第一天
    如何让移动设备的宽与浏览器视图的宽保持一致
  • 原文地址:https://www.cnblogs.com/liuchengchuxiao/p/4145737.html
Copyright © 2011-2022 走看看