对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赋值应该是管脚输出的值吧????
你有没有IOPOUT脚的? 方向或许不同。
如果方向就是这样,你把IOPIN的值打印出来看看,看写进去没有。
不然就要看看你的板子怎么连接的。
看lpc21xx的datasheet 如果再有问题就检查硬件