我用stm32外接了一个imu模组,imu每产生一个数据就会通过int管脚给32一个外部中断信号(200hz),但测试发现stm32会不断地进入中断函数,一秒钟进入上万次的那种,后来才发现原来是电平不匹配导致的,stm32电压3.3V,imu模组1.8V,中断输出电压1.8V。
我设置的stm32接收中断的io是推挽输出,没有上拉,imu中断信号为推挽输出,低电平有效,从而导致中断电平只能到1.8V,刚好处在临界点,使stm32一直触发中断。
解决办法:我把stm32接收io改为开漏模式,并设置为上拉模式,imu的中断输出io改为开漏模式,并且为低电平触发有效,此时stm32的中断便正常了,上拉决定了高电平电压为3.3V。