最近用到stm8l051 halt,在halt之后开启了外部中断,有时灵,有时不灵,设置下降沿触发,但是按键(低有效)放开了才会从HALT退出,最后发现在进去外部中断的时候一直在外部中断里面不退出。

在外部中断程序里面把端口的外部中断和端口使能的外部中断功能关闭,问题解决,可以在下降沿从halt退出。

1、开启halt,其他代码省略,只贴halt部分:

/* 禁止TIM3 */
    TIM3->SR1 = (uint8_t)(~(uint8_t)TIM3_IT_Update);
    CLK_PeripheralClockConfig(CLK_Peripheral_TIM3, DISABLE);   
 TIM3_ITConfig(TIM3_IT_Update, DISABLE);  
 TIM3_Cmd(DISABLE);
 
 if(Halt.wakeupFlag == 0)
 {
  
  POWER433MOFF;
  halt();
 }
 Halt.wakeupFlag = 0; 
 Si4432PortReset();
 MCUTXLEDOFF; 
 POWER433MON;
 //唤醒  
 EXTI->SR1 = 0Xff;
 EXTI->SR2 = 0Xff; 
 GPIOA->CR2  = 0x00;    
 GPIOB->CR2  = 0x00;  
 GPIOD->CR2  = 0x00;  
 GPIOE->CR2  = 0x00;  
 Set_X_InputPullHigh();

2、     stm8l15x_it.c里面:

/**
  * @brief External IT PIN6 Interrupt routine.
  * @param  None
  * @retval None
  */
INTERRUPT_HANDLER(EXTI6_IRQHandler,14)
{
    /* In order to detect unexpected events during development,
       it is recommended to set a breakpoint on the following instruction.
    */
 Halt.wakeupFlag = 1;                 //halt唤醒标志
 EXTI_ClearITPendingBit(EXTI_IT_Pin6);             //清外部中断6
 EXTI->SR1 = 0Xff;                                               //清端口的外部中断标志
 EXTI->SR2 = 0Xff; 
 GPIOA->CR2  = 0x00;                                        //清端口的外部中断功能
 GPIOB->CR2  = 0x00;  
 GPIOD->CR2  = 0x00;  
 GPIOE->CR2  = 0x00; 
}

stm8l051 halt之后外部中断唤醒问题相关推荐

  1. STM32CubeMX | STM32 F1系列HAL库低功耗STOP和STANDBY模式唤醒(RTC时钟唤醒+外部中断唤醒示例)

    STM32CubeMX | STM32 F1系列HAL库低功耗STOP和STANDBY模式唤醒(RTC时钟唤醒+外部中断唤醒示例) 目录 STM32CubeMX | STM32 F1系列HAL库低功耗 ...

  2. STM32F030的低功耗案例(RTC闹钟中断定时唤醒喂狗+按键外部中断唤醒)

    最近使用到低功耗方案,采用的是STM32F030C8T6芯片,由于任务开启了看门狗,进入休眠后(采用的是STOP模式),需要及时喂狗,故而使用RTC闹钟中断定时唤醒来喂狗. 对比三种休眠模式:就设备的 ...

  3. CC2530学习(四)休眠模式配置及外部中断/睡眠时钟唤醒

    文章目录 一.硬件连接 二.寄存器描述(外部中断) (一).睡眠模式设置 (二).电源模式控制设置 三.示例代码(外部中断) 四.实验现象(外部中断) 五.寄存器描述(睡眠时钟中断) (一).睡眠模式 ...

  4. STM32L051低功耗STOP模式串口中断唤醒

    STM32L051进入STOP模式后,除去通过RTC唤醒,还可通过外部中断唤醒,在stop without rtc模式下电流消耗能达到0.4uA.很多时候,我们需要使用STM32的串口进行唤醒,比如接 ...

  5. CC2530基础实验:(10)系统睡眠唤醒--中断唤醒

    目录 前言 一.实验相关电路图 二.实验相关理论与寄存器 三.源码分析 前言 1) 为什么要睡眠? Zigbee的特点就是远距离低功耗的无线传输设备,节点模块闲时可以 进入睡眠模式,在需要传输数据时候 ...

  6. cortex_m3_stm32嵌入式学习笔记(十五):待机唤醒实验(WK_UP外部中断)

    cortex_m3_stm32嵌入式学习笔记(十五):待机唤醒实验(WK_UP外部中断) https://blog.csdn.net/qq_16255321/article/details/43086 ...

  7. hal库开启中断关中断_「正点原子NANO STM32开发板资料连载」第十章 外部中断实验...

    1)实验平台:ALIENTEK NANO STM32F411 V1开发板 2)摘自<正点原子STM32F4 开发指南(HAL 库版>关注官方微信号公众号,获取更多资料:正点原子 第十章 外 ...

  8. STM32外部中断与各通道对应关系

    EXTI0_IRQn的值,其实就是EXTI0中断向量在中断向量表中的位置(STM32技术参考手册中断向量表position栏中的数值) 一:外部中断使用配置过程: (1)配置时钟信号 (2)引脚属性 ...

  9. 【STM32】外部中断实验代码详解

    文章目录 main.c exit.c exit.h STM32 的每个 IO 都可以作为外部 中断的中断输入口,这点也是 STM32 的强大之处. STM32F103 的 19 个外部中断为: 线 0 ...

最新文章

  1. 需要反射时使用dynamic
  2. linux 终端什么意思,请问我的终端显示的是什么意思
  3. 云视频通信在建筑施工企业的应用
  4. js 空数组是true还是false
  5. 使用PIE/PIF值判断DVD刻录机的刻录品质
  6. CRM【第三篇】: crm业务
  7. myeclipse6.5集成freemaker
  8. pages与页面配置
  9. 编写一个程序求解字谜游戏
  10. mysql 小数点多余0_mysql中如何去除小数点后面多余的0
  11. 正则表达式的进阶用法——预查与分组
  12. Python爬虫入门【11】:半次元COS图爬取
  13. 银行卡号码显示每隔4位数空一格
  14. 172Echarts - 象形柱图(Dotted bar)
  15. Tkx/tk——瞬态窗口
  16. Dell笔记本电脑编辑C语言,简约大气的C面设计
  17. 3DMAX绘室内装修三维效果图
  18. 世事洞明皆学问-拉链拉头的拆分安装
  19. 几种常用的特征选择方法
  20. 电梯相框广告怎么选择其材质

热门文章

  1. 打印资料显示打印服务器错误,打印服务器错误
  2. 如何使用Axis 1.x 的WSDL2Java生成客户端
  3. stata的固定效应,控制时间和个体的语句
  4. cocos编写农场偷菜小游戏的总结
  5. 极米投影仪: U盘安装APP
  6. 数据库 数据目录
  7. 大公司病,太TM形象了!
  8. 26岁学编程会不会已经晚了?
  9. 维基解密:CIA早就可以轻易入侵苹果手机和电脑
  10. RRDTool 中文手册-简易入门