[STM32F1] STM32与MQ2的使用问题

[复制链接]
9199|10
 楼主| stly 发表于 2021-6-7 23:29 | 显示全部楼层 |阅读模式
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\r\n");
   
    EXTI_ClearITPendingBit(EXTI_Line2);
   
}

MQ2是正常工作的,STM32为什么没有反应呢?
wyjie 发表于 2021-6-7 23:32 | 显示全部楼层
STM32为什么没有反应呢,没反应是啥意思,进步了中断还是啥
dingy 发表于 2021-6-7 23:44 | 显示全部楼层
可以参考一下官方的例程。
ousj 发表于 2021-6-7 23:46 | 显示全部楼层
检测的是下降沿,那么GPIO要设置成IPU(输入上拉才对)
morrisk 发表于 2021-6-7 23:48 | 显示全部楼层
MQ2检测到烟雾,输出的是低电平
zyf部长 发表于 2021-6-7 23:51 | 显示全部楼层
那个PIN先不接模块啊,自己给个低电平试试啊,弄个镊子短路到地试试啊
xxmmi 发表于 2021-6-7 23:54 | 显示全部楼层
如果中断没问题,就看下传感器啊,或许是传感器的问题啊
heweibig 发表于 2021-6-9 18:36 | 显示全部楼层

什么没正常反映;
外部中断吗?
dingy 发表于 2021-6-9 18:48 | 显示全部楼层
这就是普通IO的检测吧,可以用类似案件的扫描和外部中断来处理。
 楼主| stly 发表于 2021-6-9 18:52 | 显示全部楼层
哦,那我就知道怎么回事了,多谢大家
两只袜子 发表于 2021-6-10 15:58 来自手机 | 显示全部楼层
请问楼主问题解决了吗
您需要登录后才可以回帖 登录 | 注册

本版积分规则

433

主题

7058

帖子

0

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