配置A1口为模拟输入后,所有的中断都进不去

[复制链接]
 楼主| 精彩人生sun 发表于 2015-7-20 17:15 | 显示全部楼层 |阅读模式
本帖最后由 精彩人生sun 于 2015-7-20 17:19 编辑

正在学习32,然后学到ADC时,因为开发板的ADC1是测电位器电压,接在了GPIOA_Pin_1口,先不提ADC配置,一旦我在GPIO口中配置GPIOA_Mode = GPIO_Mode_AIN时,即配置A1脚为模拟输入,则我原来写的中断函数,无论是串口、定时还是外部中断全都进不去,只能在主循环里面转。如果删掉这句或者A1口不为模拟输入的话,所有中断都正常,求大神解答,,,被困了好久了,一直找不到原因,问了别人也说没遇到过。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
sunriselight 发表于 2015-7-20 17:19 | 显示全部楼层
仿真看看。。。
 楼主| 精彩人生sun 发表于 2015-7-20 17:19 | 显示全部楼层
不太会用仿真啊,不太懂仿真时应该干什么、怎么找问题
sunriselight 发表于 2015-7-20 17:20 | 显示全部楼层
慢慢研究下,这个必须学
 楼主| 精彩人生sun 发表于 2015-7-20 17:20 | 显示全部楼层
恩,谢谢
 楼主| 精彩人生sun 发表于 2015-7-20 17:22 | 显示全部楼层
已解决,只要不把
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);

}

然后,求知道原因的大神解释一下吧

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

46

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部