LPC2103中GPIO的IOPIN寄存器的作用

xjtuwugang   2008-8-27 21:56 楼主
对IOPIN寄存器进行写操作的结果是什么??下面有段代码帮忙分析一下
#define  LED0  0x00000010
#define  LED1  0x00000020
#define  LED2  0x00000040
#define  SPEAKER  0x02000000
void Main(void)
{
        uint32 data32[3]={0x02000030,0x00000050,0x02000060};
        uint8 i;
       
        i=0;

        //初始化PLL-----------------
    TargetInit(VPBDIV_DATA, PLLCFG_DATA, MAMTIM_DATA);      // 不能删除,初始化锁相环和内存加速设置
    while((PLLSTAT & (1 << 10)) == 0);   //反映PLL 的锁定状态。为0 时,PLL 未锁定;为1 时,PLL 锁定到指定的频率。      
   
   
   //用户程序-----------------------------------------


   PINSEL0 &= 0xFFFFC0FF;                //设置管脚连接GPIO   
   PINSEL1 &= 0xFFF3FFFF;
   IODIR|=LED0|LED1|LED2|SPEAKER;     //设置GPIO方向
   
     
   
    while(1)
    {
               IOPIN=data32[i++];//对应IO口输出1
            DelayNS(10000);
           
            if(3==i) i=0;             
    }
能不能给解释一下 如果IOPIN=0x02000030时 我的理解应该管脚输出应该是对应蜂鸣器还有LED0,LED1同时反映,可是结果确实LED0亮,这地方搞不明白?????
IOPIN赋值应该是管脚输出的值吧????

回复评论 (2)

你有没有IOPOUT脚的? 方向或许不同。
如果方向就是这样,你把IOPIN的值打印出来看看,看写进去没有。
不然就要看看你的板子怎么连接的。
点赞  2008-8-31 13:14
看lpc21xx的datasheet 如果再有问题就检查硬件
点赞  2008-8-31 15:32
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复