zoukankan      html  css  js  c++  java
  • 关于STM32运行时程序卡在B.处的解决方法

    文章转载自:https://blog.csdn.net/u014470361/article/details/78780444

    背景:
    程序运行时,发现程序卡死在B.处。
    解决方法:
    程序卡死在B.处说明有中断没有处理,导致程序进入中断后无法跳出。
    之后查看程序发现,程序中定义了一个中断,但是之前一次偶然把中断处理程序屏蔽了,导致没有中断处理函数。
    程序如下:
    //开启了EXTI15_10_IRQn中断
    void nirq_Init(void)
    {   
      GPIO_InitTypeDef GPIO_InitStructure;     
      GPIO_InitStructure.Pin =GPIO_PIN_13;   
      GPIO_InitStructure.Mode =GPIO_MODE_IT_FALLING ;   
      GPIO_InitStructure.Pull  =GPIO_NOPULL;   
      GPIO_InitStructure.Speed = GPIO_SPEED_FREQ_VERY_HIGH;   
      HAL_GPIO_Init(GPIOC,&GPIO_InitStructure);    
      HAL_NVIC_SetPriority(EXTI15_10_IRQn, 0, 0);   
      HAL_NVIC_EnableIRQ(EXTI15_10_IRQn);
    }
    //不小心把中断函数屏蔽了,如下:
    //void EXTI15_10_IRQHandler(void)//{ //  HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_13);//}
    把程序取消屏蔽后,程序正常运行了。
    总结:程序卡死在B.处,一般都是有中断没有处理,仔细检查下相关中断的配置和处理函数,找出错误即可。
  • 相关阅读:
    Thinkphp3.2 PHPMailer 发送邮件
    13 代理模式
    12 状态模式
    11 组合模式
    10 迭代器模式
    9 模板方法模式
    8 外观模式
    MySQL Network--Localhost与127.0.0.1的差异
    MySQL Memory--内存分配相关参数
    mysqldump命令之single-transaction
  • 原文地址:https://www.cnblogs.com/yeshenmeng/p/11009806.html
Copyright © 2011-2022 走看看