大鼻子JOJO 2023-05-24 11:58 采纳率: 75%
浏览 23
已结题

stm32的外部中断过程出错

在外部中断过程中,设置一个计数变量number,在中断服务函数中执行

         buf1[number]   = (BUF&0XFF);
         buf1[number+1] =((BUF>>8)&0XFF);
         number=number+2;

在主函数中判断

            if(number==1400)
            {
                      number=2;
                }

按理说在中断过程中当number计数到1400时主函数重新复位,但是在实际的过程中发现开始几次是可以正常运行的,但运行到后面number就无法复位导致程序卡死,请问一下有人遇到过这种情况吗

img

  • 写回答

4条回答 默认 最新

  • mornbin 2023-05-24 13:49
    关注

    可能再一个主循环中进了多次中断,导致执行不到复位操作,可改成

     if(number>=1400)
     {
          number=2;
      }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 6月1日
  • 已采纳回答 5月24日
  • 创建了问题 5月24日

悬赏问题

  • ¥20 这张图页脚大概具体代码该怎么写?
  • ¥20 WPF MVVM模式 handycontrol 框架, hc:SearchBar 控件 Text="{Binding NavMenusKeyWords}" 绑定取不到值
  • ¥15 需要手写数字信号处理Dsp三个简单题 不用太复杂
  • ¥15 数字信号处理考试111
  • ¥15 allegro17.2生成bom表是空白的
  • ¥15 请问一下怎么打通CAN通讯
  • ¥20 如何在 rocky9.4 部署 CDH6.3.2?
  • ¥35 navicat将excel中的数据导入mysql出错
  • ¥15 rt-thread线程切换的问题
  • ¥15 高通uboot 打印ubi init err 22