一直用以下的程序初始化LED,没发现什么问题,而且可以实现指示作用(即程序运行到哪步的时候亮哪个灯都可以实现)。今天调程序时,无意间在主函数中使用LED_ON(0),本来是想在主函数中点亮PF8口的灯,可是一运行程序所有的灯都亮了。断点调试一过这个LED_ON(0)函数,所有的灯就亮了。百思不得其解,也找不出什么问题,请大家指点一下,急啊!!
void LED_ON(unsigned int i)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOF, ENABLE);
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_10|GPIO_Pin_11;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOF, &GPIO_InitStructure);
switch(i)
{
case 0: GPIO_ResetBits(GPIOF,GPIO_Pin_8);break;
case 1: GPIO_ResetBits(GPIOF,GPIO_Pin_10);break;
case 2: GPIO_ResetBits(GPIOF,GPIO_Pin_11);break;
case 3: GPIO_ResetBits(GPIOF,GPIO_Pin_9);break;
default: GPIO_SetBits(GPIOF,GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_10|GPIO_Pin_11);
}
} |