打印

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

[复制链接]
581|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 精彩人生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 | 只看该作者
慢慢研究下,这个必须学

使用特权

评论回复
5
精彩人生sun|  楼主 | 2015-7-20 17:20 | 只看该作者
恩,谢谢

使用特权

评论回复
6
精彩人生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

粉丝