ARM芯片学习(S5PV210开发)——GPIO控制LED

Posted 代二毛

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ARM芯片学习(S5PV210开发)——GPIO控制LED相关的知识,希望对你有一定的参考价值。

什么是GPIO

GPIO:general purpose input output 通用输入输出。GPIO就是芯片的引脚,但是比较特殊,可以通过代码来操作,控制引脚的高低电平以及工作模式。与GPIO相对的就是固定功能的引脚,我们不能通过编程来控制其功能,比如芯片的电源引脚、时钟引脚等,这些引脚的功能在出厂的时候就固定了。

S5PV210的GPIO相关寄存器

GPJ0CON, (GPJ0 control)GPJ0控制寄存器,用来配置各引脚的工作模式
GPJ0DAT, (GPJ0 data)当引脚配置为input/output模式时,寄存器的相应位和引脚的电平高低相对应。
GPJ0PUD, (pull up down)控制引脚内部弱上拉、下拉
GPJ0DRV, (driver)配置GPIO引脚的驱动能力
GPJ0CONPDN,(记得是低功耗模式下的控制寄存器)
GPJ0PUDPDN (记得是低功耗模式下的上下拉寄存器)

硬件的原理图

LED的底板原理图

控制LED的关键寄存器:

GPJ0CON控制寄存器

在这里插入图片描述

GPJ0DAT寄存器

在这里插入图片描述

如何同GPIO控制LED

1.由硬件原理图可知,GPJ0_3、GPJ0_4、GPJ0_5每个端口控制一个LED,它们同属于端口组GPJ0,由相同寄存器的不同位控制。从寄存器的数据手册可以看出,每个寄存器都是32位,不同的位被划分为不同的功能。其中GPJ0CON控制器的[12:23]bit控制GPJ0_3、GPJ0_4、GPJ0_5的工作模式,GPJ0DAT的[3:5]bit控制GPJ0_3、GPJ0_4、GPJ0_5的状态。
2.要点亮LED就让端口输出低电平,要熄灭LED就让LED输出高电平。现在来配置寄存器,首先是GPJ0CON控制,要将GPJ0_3、GPJ0_4、GPJ0_5都设置为输出模式,根据数据手册可知,每个端口都设置为"0001"。然后设置GPJ0DAT寄存器,只需要把相应的位设置为1或者0,端口就能输出高低电平。比如将GPJ0DAT的[3:5]设置为0,GPJ0_3、GPJ0_4、GPJ0_5都输出低电平,此时LED点亮,每个bit之间也可以单独设置,互不影响,设置的最小单位是bit。
补充:当端口设置为输入模式,GPJ0DAT的值就是读取到的端口状态的值;当端口设置为中断模式时,外界的电平变化可以触发中断,至于触发的条件是可以配置的,有高电平触发、低电平触发、上升沿触发、下降沿触发。

以上是关于ARM芯片学习(S5PV210开发)——GPIO控制LED的主要内容,如果未能解决你的问题,请参考以下文章

ARM架构的外部中断介绍(S5PV210芯片)

ARM芯片学习(S5PV210开发)——代码重定位

ARM芯片开发学习(S5PV210)——icachedcache介绍和如何开关icache

ARM芯片开发(S5PV210芯片)——SD卡启动

ARM芯片开发(S5PV210芯片)——定时器看门狗RTC

ARM芯片(S5PV210芯片)——串口通信详解