IAR KEIL 中断开了就是进不去

开发环境:IAR for STM8

芯片:STM8S105K4

内容:在程序中写了一个关于GPIOC下降沿中断内容如下

结果就是进不去中断。

//按键引脚与寄存器定义
#define  KEY1_PIN               (0x01 << 3)
#define  KEY1_DDR             (GPIOC->DDR)
#define  KEY1_CR1              (GPIOC->CR1)
#define  KEY1_CR2              (GPIOC->CR2)
#define  KEY1_IN()               (GPIOC->IDR &  KEY1_PIN)
#define  KEY1_ON()             (GPIOC->ODR |= KEY1_PIN)
#define  KEY1_OFF()           (GPIOC->ODR &=~KEY1_PIN)

#define  KEY2_PIN               (0x01 << 2)
#define  KEY2_DDR             (GPIOC->DDR)
#define  KEY2_CR1              (GPIOC->CR1)
#define  KEY2_CR2              (GPIOC->CR2)
#define  KEY2_IN()               (GPIOC->IDR &  KEY2_PIN)
#define  KEY2_ON()             (GPIOC->ODR |= KEY2_PIN)
#define  KEY2_OFF()           (GPIOC->ODR &=~KEY2_PIN)

#define  KEY3_PIN               (0x01 << 1)
#define  KEY3_DDR             (GPIOC->DDR)
#define  KEY3_CR1              (GPIOC->CR1)
#define  KEY3_CR2              (GPIOC->CR2)
#define  KEY3_IN()               (GPIOC->IDR &  KEY3_PIN)
#define  KEY3_ON()             (GPIOC->ODR |= KEY3_PIN)
#define  KEY3_OFF()           (GPIOC->ODR &=~KEY3_PIN)

//初始化函数   

void KEY_Init(void)
{

    KEY1_DDR &=~KEY1_PIN;
    KEY1_CR1 |= KEY1_PIN;
    KEY1_CR2 |= KEY1_PIN;
    
    KEY2_DDR &=~KEY2_PIN;
    KEY2_CR1 |= KEY2_PIN;
    KEY2_CR2 |= KEY2_PIN;
    
    KEY3_DDR &=~KEY3_PIN;
    KEY3_CR1 |= KEY3_PIN;
    KEY3_CR2 |= KEY3_PIN;
        //GPIOC  下降沿中断
    EXTI->CR1 |= 0x20;

}

//中断函数

#pragma vector = 0x07  
__interrupt void EXTI_PORTC_IRQHandler(void)
{
  
   if(KEY1_IN() != KEY1_PIN)LED1_ON();else LED1_OFF();
   if(KEY2_IN() != KEY2_PIN)LED2_ON();else LED2_OFF();
   if(KEY3_IN() != KEY3_PIN)LED3_ON();else LED3_OFF();
}

原因:

将文件从/A文件下复制到/B文件下。在/B文件下进行开发。结果在/B下修改了/A文件的内容。程序对的,没错,是/A文件下的修改了,/B文件下的文件并没有修改。

 

将close和close all but this 都点击,然后重新打开。你就会发现你之前修改的内容一点就没修改。重新修改一下就好了,可以进入中断了。

另外KEIL跟这个IAR for STM8也一样,也会出现这样的事。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值