STM32上应用MQ2

2019-03-23 17:01发布

void Mq2_Init(void)
{
     GPIO_InitTypeDef   GPIO_InitStruct;
     EXTI_InitTypeDef   EXTI_InitStruct;
     NVIC_InitTypeDef   NVIC_InitStruct;
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);
    GPIO_EXTILineConfig(GPIO_PortSourceGPIOB,GPIO_PinSource2);
   
   
   
   
    GPIO_InitStruct.GPIO_Mode=GPIO_Mode_IPD;
    GPIO_InitStruct.GPIO_Pin=GPIO_Pin_2;
    GPIO_InitStruct.GPIO_Speed=GPIO_Speed_50MHz;
    GPIO_Init(GPIOC,&GPIO_InitStruct);
    GPIO_SetBits(GPIOB,GPIO_Pin_2);   
   
    NVIC_InitStruct.NVIC_IRQChannel=TIM2_IRQn;
    NVIC_InitStruct.NVIC_IRQChannelCmd=ENABLE;
    NVIC_InitStruct.NVIC_IRQChannelPreemptionPriority=2;
    NVIC_InitStruct.NVIC_IRQChannelSubPriority=2;
    NVIC_Init(&NVIC_InitStruct);

    EXTI_ClearITPendingBit(EXTI_Line2);  
    EXTI_InitStruct.EXTI_Line=EXTI_Line2;
    EXTI_InitStruct.EXTI_LineCmd=ENABLE;
    EXTI_InitStruct.EXTI_Mode=EXTI_Mode_Interrupt;
    EXTI_InitStruct.EXTI_Trigger=EXTI_Trigger_Falling;
    EXTI_Init(&EXTI_InitStruct);
   

   
}


void EXTI2_IRQHandler(void)
{

    delay_ms(10);
   
    PCout(2)=0;

    LED0=!LED0;
    delay_ms(500);
    LED0=!LED0;
    printf("dangerous ");
   
    EXTI_ClearITPendingBit(EXTI_Line2);
   
}

MQ2是正常工作的,STM32为什么没有反应呢?




友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
7条回答
ienglgge
1楼-- · 2019-03-23 21:19
/ STM32为什么没有反应呢,没反应是啥意思,进步了中断还是啥。你可以参考一下官方的例程。
夜的第柒章
2楼-- · 2019-03-24 02:27
ienglgge 发表于 2017-12-13 09:57
STM32为什么没有反应呢,没反应是啥意思,进步了中断还是啥。你可以参考一下官方的例程。

是进不了中断,请问哪里有问题呢?
weizhongc
3楼-- · 2019-03-24 03:42
 精彩回答 2  元偷偷看……
夜的第柒章
4楼-- · 2019-03-24 09:30
weizhongc 发表于 2017-12-13 17:01
你检测的是下降沿,那么GPIO要设置成IPU(输入上拉才对)

还是不行啊
夜的第柒章
5楼-- · 2019-03-24 11:50
weizhongc 发表于 2017-12-13 17:01
你检测的是下降沿,那么GPIO要设置成IPU(输入上拉才对)

MQ2检测到烟雾,输出的是低电平
weizhongc
6楼-- · 2019-03-24 15:51
 精彩回答 2  元偷偷看……

一周热门 更多>