打印
[STM8]

STM8进不了外部中断,求帮忙看看问题在哪?

[复制链接]
1542|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
liozhenbin92|  楼主 | 2015-9-17 15:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我找一下午了,就是不知道为什么进不了中断,拿万用表测试KEY1两端电压,发现竟然都是0.001V,接地了。是不是IO口配置有问题啊?实在想不通了,求帮忙。
void key_ext(void)
{
  PD_DDR=0xef;//PD7--KEY1输入
  PD_CR1=0x80;//PD7--上拉输入
  PD_CR2=0x80;//PD7--中断使能
  
  EXTI_CR1 &= (u8)(~MASK_EXTI_CR1_PDIS ); /*清除标志位 */
  EXTI_CR1 = (u8)( 0x80 );              /*仅下升沿触发 */
  
  

  PC_DDR=0x08;//PC3--LED3输出
  PC_CR1=0x08;//PC3--推挽输出
  PC_CR2=0x08;//PC3--最大输出速度10MHz
}



void main(void)
{
  DisableInterrupt;//关总中断
  Clk_conf();
  
  key_ext();    //外部中断初始化
  //Set_Led_Off();//关闭所有LED灯
  
  EnableInterrupt;//开总中断
  while(1)
  {
    PC_ODR=0x08;//关闭LED3
    delay_ms(100);
   
  }
}
----------------------------------------------------中断函数------------------------------------------------
#pragma vector=8
__interrupt void EXTI_PORTD_IRQHandler(void)
{
      DisableInterrupt;//关总中断

       PC_ODR=0x00;//点亮LED3;
       delay_ms(1000);
      
      EnableInterrupt;//开总中断
}
沙发
qgmfly| | 2015-9-17 15:44 | 只看该作者
PD7是最高优先级的中断源(TLI),中断向量的地址是8008H,不是PD口的8020H。

中断向量不对。楼主可自己翻看一下STM8s中文手册的——外部中断说明

使用特权

评论回复
板凳
liozhenbin92|  楼主 | 2015-9-17 16:54 | 只看该作者
qgmfly 发表于 2015-9-17 15:44
PD7是最高优先级的中断源(TLI),中断向量的地址是8008H,不是PD口的8020H。

中断向量不对。楼主可自己翻 ...

多谢了,调了好久了,就这个IO口不行,太感谢了。PD7的最高级我是知道的,结果用的时候就傻了,
放到PORTD中断里面了。

使用特权

评论回复
地板
qgmfly| | 2015-9-18 15:40 | 只看该作者
不客气,我也是前几天调试中断的时候,偶然看到datasheet里的中断说明才知道了

使用特权

评论回复
5
仙人球W| | 2015-9-19 11:49 | 只看该作者
给力!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

22

主题

159

帖子

5

粉丝