ARM学习《四》——操作I/O口,让LED闪起来!

发布者:Jikai最新更新时间:2016-04-29 来源: eefocus关键字:ARM学习  IO口  LED 手机看文章 扫描二维码
随时随地手机看文章
对ARM的IO口进行操作和51是不大一样的,但也的大同小异,ARM的寄存器多了一些,IO口的功能多了一些,他的功能更是分的很细,比如说在51中你只要对控制IO口的寄存器进行写一就输出一,写零就会输出零。读的时候也是直接将寄存器赋值给变量就可以了:

 写操作如:

             P0^1=1;

             P0^1=0;

读操作如:

            Data_IO= P0^1;

  51的读写是非常简单的,但在ARM中读写都有其各自的寄存器,连IO口输出0和1都有其自己的寄存器,这些在各种ARM器件用户手册中都有详细说明。而且ARM的IO口功能也细分到了极致,要进行这些细分,当然要对寄存器进行控制,所以ARM的寄存器很多也就理所当然。还是拿LM3S8962为例IO口的配置功能有:

转】ARM学习《四》——操作I/O口,让LED闪起来!

 

转】ARM学习《四》——操作I/O口,让LED闪起来!转】ARM学习《四》——操作I/O口,让LED闪起来!

 

 

不同寄存器的值就代表不同的IO功能,所以对IO口的操作关键还是对寄存器的设置。

现在我想让开发板上PF0口的LED闪烁,那么就要配置PF口位数字输(GPIO)出口,相应的寄存器位DIR=1(IO方向寄存器1=输出,0=输入),DEN=1(数字IO使能寄存器),然后对GPIO数据寄存器GPIODATA进行赋值即可。具体操作如下:

首先是寄存器的定义:

#define SYSCTL_RCGC2_GPIOF      0x00000020  // Port F 时钟使能值

#define SYSCTL_RCGC2            0x400FE108  // 运行模式时钟门控寄存器2地址

#define GPIO_PORTF_BASE  0x40025000  // GPIO Port F寄存器的基址(就是起始地址)

#define GPIOF_DIR     0x00000400  // Port F DIR.的偏移地址 (实际地址是0x40025400)

#define GPIOF_DEN      0x0000051C  // Port F DEN. 的偏移地址

#define GPIOF_DATA      0x000003FC  // Port F DATA. 的偏移地址

#define    HWREG(x)          (*((volatile unsigned long *)(x))) //操作寄存器

 

__asm void SysCtlDelay(unsigned long ulCount) //延时函数

{

    subs    r0, #1;

    bne     SysCtlDelay;

    bx      lr;

}

int main()

{

SysCtlClockSet(); //设置系统时钟(上一篇中已经说明具体设置)

HWREG(SYSCTL_RCGC2)|=SYSCTL_RCGC2_GPIOF; //开启GPIOF口时钟

HWREG(GPIO_PORTF_BASE|GPIOF_DIR)=0x01;//IO口F方向为输出

HWREG(GPIO_PORTF_BASE|GPIOF_DEN)=0x01; ///IO口F数字输出使能

while(1)

    {

         

          HWREG(GPIO_PORTF_BASE|GPIOF_DATA)|=0x01;//对IO口PF0置一

          SysCtlDelay(0x1000000); //延时

          HWREG(GPIO_PORTF_BASE+GPIOF_DATA)&= ~(0x01); //对IO口PF0置零

          SysCtlDelay(0x1000000); //延时

    }

 

}

这样LED就可以闪烁啦,呵呵。明天我想操作串口……

关键字:ARM学习  IO口  LED 引用地址:ARM学习《四》——操作I/O口,让LED闪起来!

上一篇:ARM学习《三》PLL时钟配置——让心脏跳起来!
下一篇:ARM学习《五》——关于STM32串口下载

推荐阅读最新更新时间:2024-03-16 14:52

ARM裸机程序之LED
从3月份开始看arm的裸机程序,到现在一个半月了,做到后来,发现自己越做到综合的程序,越吃力,还是得回头看看,为了最终写一个bootloader打下点基础吧,所以以这篇文章为开始,总结一下之前做过的裸机程序,希望会有所收获,我用的开发板是友善之臂的mini2440。 首先声明一点我都是在linux环境下写裸机程序的,因为这样能知道更多底层的东西,不过在这里面写就是有点不方便的是调试的时候,所以你程序要是调试不出来,你得把程序移植到一些编译器里调试(请注意移植的时候格式有点不同),所以偶尔在keil或ADS里面调试程序。在linux里面写程序最后编译,要配置交叉编译环境,怎么配置交叉编译环境我这里就不介绍了。 下面开始介绍
[单片机]
LED路灯电源设计的4种方案
   LED路灯 是 LED照明 中一个很重要应用。在节能省电的前提下,LED路灯取代传统路灯的趋势越来越明显。市面上, LED路灯电源 的设计有很多种。早期的设计比较重视低成本的追求;到近期,共识渐渐形成,高效率及高可靠性才是最重要的。   本文主要是针对几种不同LED路灯的应用,提出了适合的架构,并对其优缺点进行分析,以便让读者能根据具体状况和设计的路灯种类,找到最合适的方案。   方案一:直接AC输入,对6串 LED 分别做恒流控制   在本文介绍的几种方案之中,这一种方案应该是目前效率最高、电路成本最低的方案(图1)。直接用 光电 耦合器对初级侧电路进行回溯控制,调节输出电压。相对于其它传统方案,该方案的 开关 损耗
[电源管理]
<font color='red'>LED</font>路灯电源设计的4种方案
浅析白光LED照明特点与驱动器类型之间的联系
城市照明对改善城市人居环境、提高城市整体素质、推动内需、拉动城市夜间经济发挥了积极作用,为城市的社会效益、环境效益、经济效益做出了巨大贡献。目前城市照明(指景观照明和功能照明的统称)的年用电量约占全国总发电量的4-5%,城市照明节电,具有重要意义。普通的节能灯,寿命比较短,导致节电却不省钱。半导体照明 (semi -conductorlighting)是未来照明领域重要的发展方向。半导体照明与一般光伏 电源 配用的节能灯泡相比具有节能、长寿、安全、环保、色彩丰富、体积小、耐闪烁、可靠性高、调控方便等诸多优点。发光二极管作为一种新型照明光源正在获得越来越广泛的应用。   一、半导体照明特点   电子元件 二极管中半导体 发光二
[电源管理]
六看LED灯带是否正规
   看包装      正规的 LED灯 带会采用防静电卷料盘包装,一般会5米一卷或者是10米一卷,然后外面再采用防静电防潮包装袋密封。而山寨版的 LED 灯带会因为节约成本,而采用回收卷料盘,然后没有防静电防潮包装袋,仔细看卷料盘能看出外表有清除标签时留下的痕迹和划痕。    看标签      正规的LED灯带包装袋和卷料盘上面都会有印刷标签,而不是打印的标签。而山寨版的标签是打印的,同时规格和参数不统一。    看附件      正规的LED灯带会在包装箱里面附上使用说明和灯带规格书,同时还会配备LED灯带连接器或者是卡座;而山寨版的LED灯带包装箱里则没有这些附件,因为他们是能省则省。    看焊点      正规的LED灯
[电源管理]
雷击对LED路灯的影响及预防
雷击对LED路灯的影响及预防 总结雷击主要有以下四种类型: 1.直击雷 直击雷蕴含极大的能量,峰值电压可达5000kv的雷电流入地,具有极大的破坏力。会造成以下三种影响: (1)巨大的富电流在数微秒时间内流下地,使地电位迅速拾高,造成反击事故,危害人身和设备安全。 (2)雷电流产生强大的电磁波,在电源线和信号线上感应极高的脉冲电压。 (3)雷电流流经电气设备产生极高的热量,造成火灾或爆炸事故。 2.传导雷 远处的雷电击中线路或因电磁感应产生的极高电压,由室外电源线路和通信线路传至建筑物内室内的电气设备。 3.感应雷 云层之间频繁放电产生强大的电磁波导致共模和差模干扰,影响电气设备运行。 4.开关过电压 供电
[电源管理]
LED驱动器的可靠性和电磁兼容性测试方案
  一  引言   随着人类科技的不断发展,我们星球的夜晚变得越来越明亮,越来越绚烂,在这些变化的背后,是不断发展的照明技术。在照明技术的开发及制造中使用的电子系统和元器件改变了照明设备及系统的未来。纵观照明技术的发展历史,大致经历了四个时代的跨越式变迁,并得到了长足的发展。早期具有代表性的是它通过二极管和晶体管对交流电进行整流,随后发展为内置直流逆变产生高频交流,高效驱动T8灯具的电子荧光灯照明镇流器。如今,设计者已不再仅仅设计电子镇流器, 而致力于AC-DC智能变换器的设计,有些内部还含基于微处理器构成的用以照明控制和调光的复杂控制系统。   设计者们给发光二极管 LED和阵列作光源设计的供电电源,称之为LED电子驱动器。对于
[测试测量]
<font color='red'>LED</font>驱动器的可靠性和电磁兼容性测试方案
增强型LED驱动解决方案:完全可设置的智能16粒LED光源驱动器
LED1642GW是意法半导体的新一代LED阵列驱动器,新增一系列完全可设置的创新功能,同时保留原来的24针标准封装,在实际应用中只需一个外部电阻,从而可大幅降低组件成本,提高系统设计的灵活性。 新的嵌入式功能让系统设计变得更加灵活,为用户提供不同的配置选择:局部调光、全局电流调节、开关时间设定、通道间顺序延时、先进的LED故障检测报告、自动节能专利技术、串行数据与时钟重新同步等诸多功能。 LED1642GW专注于满足图1所示应用领域对降噪的需求,让用户能够通过串行接口,设定输出通道的开关速度,共有四档速度可选,导通时间设定范围为30nS- 270nS。配合可设定通道间输出延时,开关时间设定让用户轻松地调节应用,切实降低E
[电源管理]
通信与消费电子影响2008年半导体市场
  我们认为LED照明、视频广播、汽车电子、无线基础设施、便携式设备等5个方面的解决方案将对2008年的半导体产业产生影响。   LED因其耗电较少而使得越来越多的照明应用转变为LED。LM3430+LM3432是用于LCD显示板的4通道-6通道LED背光驱动器解决方案。通过合并各通道电流调节器,为每个LED通道提供精确的驱动电流,通道偏差保持在±2.5%。同时实施闭环控制以控制LED轨道电压,使功效最大化。这个解决方案对白、红、蓝、绿、黄色等所有颜色的LED都很好。   HD(高清晰度)视频是未来视频应用的市场趋势。它需要具有更高带宽、极低的抖动和三层同步处理能力的同步分离器和交叉点开关来提供卓越的视频质量。另外,因为市场上
[焦点新闻]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved