ARM学习篇一 点亮LED

Posted

tags:

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

要点亮LED,先决条件是什么,当然得有相应的硬件设施。板子的整个电路图比较大,我就直接取相关部分。

技术分享


技术分享
给发光二级管加上3.3v电压后,通过1k电阻,直接与S3C2440连接。至于为什么要加电阻,大家应该都知道,发光二极管的正向电阻很小,管子很容易因电流过大而烧坏。至于具体多少,可以看你买的管子的说明。

具体的烧写驱动安装,ARM集成开发环境安装我就不说了。一般都有手册,手册里面说得很清楚。

下面是代码实现:

 

 AREA LED,CODE,READONLY
 ENTRY
 CODE32
GPFCON EQU 0x56000050
GPFDAT EQU 0x56000054
GPFUP  EQU 0x56000058
INIT
 LDR R0,=0X70
 LDR R1,=GPFUP
 STR R0,[R1]
 
 LDR R0,=0X1500
 LDR R1,=GPFCON
 STR R0,[R1]
 
 LDR R0,=0X70
 LDR R1,=GPFDAT
 STR R0,[R1]
 
MAIN
 LDR R0,=0X60
 STR R0,[R1]
 BL TIMER
 
 LDR R0,=0X50
 STR R0,[R1]
 BL TIMER
 
 LDR R0,=0X30
 STR R0,[R1]
 BL TIMER
 

 B MAIN
TIMER
 LDR R0,=0X5FFFF
TIMER_IMPLEMENT
 
 SUB R0,R0,#1
 CMP R0,#0
 MOVEQ PC,LR
 BNE TIMER_IMPLEMENT
 END
  

本程序首先定义了三个GPIO操作相关的寄存器名称。

此时注意看手册,不同的芯片相关定义存在差异。

A.外部已加电源,故关闭GPIO端口的上拉电阻功能,设置GPFUP相关位。

B.设置端口的输入输出属性,本端口输入低电平。

C.最后根据输出需求,设置GPIO端口的数据寄存器的值。

上述代码定时效率低,严重浪费CPU,但我们刚开始,只要了解熟悉相关分析方法即可,下篇介绍中断。

以上是关于ARM学习篇一 点亮LED的主要内容,如果未能解决你的问题,请参考以下文章

ARM裸机开发:C语言点亮LED

STM32-新建工程,点亮led

4_LED程序

Linux+STM32Linux下用CubeMX+VSCode点亮LED(STM32)

裸机点亮LED(运行在片内RAM中)

am335x uboot 点亮LED