已解决,只要不把
27
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1;
28
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN;
29
GPIO_Init(GPIOA, &GPIO_InitStructure);
即不能把模拟输入配置放在子函数的底部就可,改完后程序为:
void GPIO_Configuration(void)
{
GPIO_InitTypeDef GPIO_InitStructure; //¶¨ÒåGPIO³õʼ»¯½á¹¹Ìå
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1, ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB | RCC_APB2Periph_GPIOD, ENABLE); //ÔÊÐí*****ʱÖÓ
GPIO_SetBits(GPIOB,GPIO_Pin_0 | GPIO_Pin_1); //LEDµÆÊä³öÅäÖÃ
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_Init(GPIOB, &GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10 | GPIO_Pin_5; //°´¼üÊäÈëÅäÖÃ
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;
GPIO_Init(GPIOD, &GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1;//ADÊäÈëÅäÖÃ
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN;//Ä£ÄâÊäÈë
GPIO_Init(GPIOA, &GPIO_InitStructure);
/* ´®¿ÚÅäÖÃ*/
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;//USART TXÉèÖÃÎªÍÆÍ츴ÓÃÊä³ö
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
// GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;//ÉÏÎÄÒѾÅäÖã¬Ôò¿ÉÊ¡ÂÔ
GPIO_Init(GPIOA, &GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;//USART RXÉèÖÃΪ¸¡¿ÕÊäÈë
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
GPIO_Init(GPIOA, &GPIO_InitStructure);
}
然后,求知道原因的大神解释一下吧
|