[mw_shl_code=c,true]void SysClock_Init(void)
{
ErrorStatus HSEStartUpStatus;
RCC_DeInit();
RCC_HSEConfig(RCC_HSE_ON);
HSEStartUpStatus = RCC_WaitForHSEStartUp();
if(HSEStartUpStatus == SUCCESS){
FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);
FLASH_SetLatency(FLASH_Latency_2);
RCC_HCLKConfig(RCC_SYSCLK_Div1);
RCC_PCLK2Config(RCC_HCLK_Div1);
RCC_PCLK1Config(RCC_HCLK_Div2);
RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9);
RCC_PLLCmd(ENABLE);
while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET){
;
}
RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);
while(RCC_GetSYSCLKSource() != 0x08){
;
}
}
}
/*端口配置*/
void GPIO_Configuration(void)
{GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_10|GPIO_Pin_11;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_Init(GPIOD, &GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;
GPIO_Init(GPIOD, &GPIO_InitStructure);
}
/*时钟使能*/
void RCC_Configuration(void)
{RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD, ENABLE);
RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2, ENABLE);
}
/*键盘扫描程序*/
u8 key_scan(void)
{
if(GPIO_ReadInputDataBit(GPIOD, GPIO_Pin_0)==0) return 0;
if(GPIO_ReadInputDataBit(GPIOD, GPIO_Pin_1)==0) return 1;
if (GPIO_ReadInputDataBit(GPIOD, GPIO_Pin_2)==0) return 2;
if(GPIO_ReadInputDataBit(GPIOD, GPIO_Pin_3)==0) return 3;
if(GPIO_ReadInputDataBit(GPIOD, GPIO_Pin_4)==0) return 4;
return 5;
}
int main(void)
{ GPIO_Configuration();
RCC_Configuration();
SysClock_Init();
while(1)
{ u8 i;
i=key_scan();
switch(i)
{ case 0: GPIO_SetBits(GPIOD, GPIO_Pin_8); break;
case 1: GPIO_SetBits(GPIOD, GPIO_Pin_9); break;
case 2: GPIO_SetBits(GPIOD, GPIO_Pin_10); break;
case 3: GPIO_SetBits(GPIOD, GPIO_Pin_11); break;
}
}
// return 0;
}
[/mw_shl_code]
为什么我这段代码编译通过,但是为何把程序下载到开发板上,按了开发板上的按键,但是相应的LED灯不亮呢?检查了好久也没发现程序有什么错误啊 |