S3C2440 GPIO控制器

写这篇文章主要针对按键控制LED灯,因为一直忘记如何操作的。    

GPIO 全称General Purpose Input Output(通用的输入/输出),通俗的说就是一些引脚可以通过它们输出高/低电平,或者通过引脚读取状态(获得的是高电平还是低电平)。

    对于输入,通过读取某个寄存器来确定引脚的电平是高还是低;对于输出,通过写入某个寄存器来让引脚输出高电平或是低电平;对于其他特殊功能,则有另外的寄存器控制它。

    S3C2440 : GPxCON用于配置引脚功能(输入/输出);GPxDAT用于表示对应引脚是高还是低电平(若引脚为输入,则读取GPxDAT电平;若引脚为输出,则输出GPxDAT电平)

    因此,对应单个引脚有3种操作:

(1)输出高/低电平:输出模式

(2)检测引脚状态:输入模式

(3)中断: 中断模式

S3C2440 GPIO控制器

(1)直接点亮LED

    将GPB5/6/7/8设置为输出引脚,根据原理图,需要设置为输出低电平才能点亮LED,这些操作可以设置对应的GPIO控制寄存器。

         设置LED GPxCON寄存器为输出模式,设置LED GPxDAT寄存器输出低电平

(2)使用按键控制LED

      检测按键引脚和点亮LED引脚不是相同的引脚,需要有单独的引脚来检测状态。GPG3/11,GPF0/2设置为输入引脚,读取引脚状态。当开关按下,读取到的电平为低电平,当开关断开,读取到的电平是高电平。在读取到开关引脚为低电平时,同时设置led引脚输出低电平时,LED点亮。

        设置开关GPxCON寄存器为输入引脚,读取开关GPxDAT寄存器的值,若对应的值为低电平时,开关合上,设置LED GPxCON寄存器为输出模式,设置LED GPxDAT寄存器输出低电平

S3C2440 GPIO控制器