关于用寄存器控制Led点灯问题
我是想通过改变odr寄存器里的位数,让3个led灯点灭。代码想要达到效果首先LED1,3亮,然后1秒等待,LED1,2,3都亮。但是现在当我加入延时函数时只能看到LED1,3亮,而看不到LED2亮。而去掉延时函数时就能看到LED1,2,3同时亮。到底哪里可能出现问题
******************************************************************
GPIOB->ODR=((u16)0x0001);//LED1亮
GPIOB->ODR=(GPIOB->ODR|(u16)0x0004);//LED3和LED1亮
TimeWait(10000);//延时1s函数
GPIOB->ODR=(GPIOB->ODR|(u16)0x0002);//LED1,2,3都亮
--------------------------------------------------------
延时函数:
void TimeWait(int Dly)
{
while(Dly--)
{
for(volatile int i = 450; i>0; i--);
}
}
**********************************************************************
初学c语言请高手们说的详细的,最好在我代码基础上修改,谢谢