打印
[ZLG-ARM]

LPC2214可以采用位域定义方式访问IO吗?

[复制链接]
1780|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
chengyabcd|  楼主 | 2007-5-10 12:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
computer00| | 2007-5-10 13:02 | 只看该作者

我建议你还是直接操作比较方便,使用宏定义.

例如我控制LED用的头文件:


/*
  LED.H file
  LED基本操作——开LED,关LED
  作者:Computer-lov
  建立日期:2006-3-19
  修改日期:2006-4-25
  最后修改时间:2006-08-25
  版本:V1.0
  版权所有,盗版必究。
  Copyright(C) Computer-lov 2006-2016
  All rights reserved
*/

#ifndef __LED_H__
#define __LED_H__

#define LED1    18     //P1.18
#define LED2    19     //P1.19
#define LED3    20     //P1.20
#define LED4    21     //P1.21
#define LED5    22     //P1.22
#define LED6    23     //P1.23
#define LED7    24     //P1.24
#define LED8    25     //P1.25


//关LED   
#define OFF_LED1()    IO1SET=(1<<(LED1))
#define OFF_LED2()    IO1SET=(1<<(LED2)) 
#define OFF_LED3()    IO1SET=(1<<(LED3)) 
#define OFF_LED4()    IO1SET=(1<<(LED4)) 
#define OFF_LED5()    IO1SET=(1<<(LED5)) 
#define OFF_LED6()    IO1SET=(1<<(LED6)) 
#define OFF_LED7()    IO1SET=(1<<(LED7)) 
#define OFF_LED8()    IO1SET=(1<<(LED8)) 


//开LED1
#define ON_LED1()    IO1CLR=(1<<(LED1))
#define ON_LED2()    IO1CLR=(1<<(LED2)) 
#define ON_LED3()    IO1CLR=(1<<(LED3)) 
#define ON_LED4()    IO1CLR=(1<<(LED4)) 
#define ON_LED5()    IO1CLR=(1<<(LED5)) 
#define ON_LED6()    IO1CLR=(1<<(LED6)) 
#define ON_LED7()    IO1CLR=(1<<(LED7)) 
#define ON_LED8()    IO1CLR=(1<<(LED8))
 
 /*使能LED1,即将LED1对应的口设置为输出*/
#define EN_LED1()  {IO1DIR |=(1<<LED1);OFF_LED1();}      
#define EN_LED2()  {IO1DIR |=(1<<LED2);OFF_LED2();}
#define EN_LED3()  {IO1DIR |=(1<<LED3);OFF_LED3();}
#define EN_LED4()  {IO1DIR |=(1<<LED4);OFF_LED4();}
#define EN_LED5()  {IO1DIR |=(1<<LED5);OFF_LED5();}
#define EN_LED6()  {IO1DIR |=(1<<LED6);OFF_LED6();}
#define EN_LED7()  {IO1DIR |=(1<<LED7);OFF_LED7();}
#define EN_LED8()  {IO1DIR |=(1<<LED8);OFF_LED8();}


/*LED状态*/
#define LED1STAT (IO1PIN &(1<<(LED1)))
#define LED2STAT (IO1PIN &(1<<(LED2)))
#define LED3STAT (IO1PIN &(1<<(LED3)))
#define LED4STAT (IO1PIN &(1<<(LED4)))
#define LED5STAT (IO1PIN &(1<<(LED5)))
#define LED6STAT (IO1PIN &(1<<(LED6)))
#define LED7STAT (IO1PIN &(1<<(LED7)))
#define LED8STAT (IO1PIN &(1<<(LED8)))

#endif

使用特权

评论回复
板凳
chengyabcd|  楼主 | 2007-5-10 13:06 | 只看该作者

AGAIN

谢谢大侠指点!只是感觉这样定义很多,我基本上把IO全用完了^_^

使用特权

评论回复
地板
computer00| | 2007-5-10 14:18 | 只看该作者

使用位段照样要每个管脚都写定义

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

14

主题

70

帖子

1

粉丝