跳转至内容
  • 版块
  • 最新
  • 标签
  • 热门
折叠
品牌标识

YunTu Forum

YTMicro.com
  1. 主页
  2. Discussion & Question
  3. YTM32B1H系列
  4. YTM32B1HA01 因没有清空中断标志位,导致串口中断一直触发的问题

YTM32B1HA01 因没有清空中断标志位,导致串口中断一直触发的问题

已定时 已固定 已锁定 已移动 未解决 YTM32B1H系列
12 帖子 2 发布者 47 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • huorunfaH 离线
    huorunfaH 离线
    huorunfa
    编写于 最后由 编辑
    #3
    1. 软件内部有接收动作,但是测试过程中对端没有发出过数据,为什么会触发接收中断?
    2. “配置接收 8 个字节,实际收到超过 8 个字节”出现这种情况会导致中断一直触发吗?实际开发过程中是避免不了有这种情况出现的。
    1 条回复 最后回复
    0
    • DigaD 离线
      DigaD 离线
      Diga
      编写于 最后由 编辑
      #4
      1. 看状态应该是有噪声,noise flag 有置起,建议用示波器看一下总线
      2. 如果你确定个数的,那就正确设置个数,上层协议应该是要规定的。如果不定长的帧,那就不能设置较小的接收值,采用不定长帧的接收方式,demo 里有不定长接收
      1 条回复 最后回复
      0
      • huorunfaH 离线
        huorunfaH 离线
        huorunfa
        编写于 最后由 编辑
        #5

        示波器看着没啥问题,这个也是偶发性的,当前SDK是不是没有处理这种情况?

        1 条回复 最后回复
        0
        • huorunfaH 离线
          huorunfaH 离线
          huorunfa
          编写于 最后由 编辑
          #6

          噪声会导致 DRF_RFE 接收中断标志置位吗?现场问题是 DRF_RFE 置位,但是 uartState->isRxBusy 没有置位,这个中断清不掉

          1 条回复 最后回复
          0
          • DigaD 离线
            DigaD 离线
            Diga
            编写于 最后由 编辑
            #7

            我猜测:在你的代码里,应该是 LINFlexD_UART_DRV_CompleteReceiveUsingInterrupts 这个函数去把 isRxBusy 设置成 false,但是在这之前,接收中断就已经关了。但现在你的状态是 isRxBusy 是 false,但中断仍使能,就会导致一直进接收中断,却没法接收数据。还是建议自查一下代码

            1 条回复 最后回复
            0
            • huorunfaH 离线
              huorunfaH 离线
              huorunfa
              编写于 最后由 编辑
              #8

              image.png
              如果此处触发串口异常中断调用 LINFlexD_UART_DRV_ErrIRQHandler -> LINFlexD_UART_DRV_CompleteReceiveUsingInterrupts 清除 isRxBusy 后,LINFlexD_UART_DRV_StartReceiveUsingInterrupts 继续运行,执行 /* Enable the receiver */
              LINFlexD_SetReceiverState(base, true);

                  /* Enable receive data full interrupt */
                  LINFlexD_SetInterruptMode(base, LINFlexD_DATA_RECEPTION_COMPLETE_INT, true); 是否会导致这个问题
              
              1 条回复 最后回复
              0
              • huorunfaH 离线
                huorunfaH 离线
                huorunfa
                编写于 最后由 编辑
                #9

                image.png

                1 条回复 最后回复
                0
                • DigaD 离线
                  DigaD 离线
                  Diga
                  编写于 最后由 编辑
                  #10

                  image.png

                  1 条回复 最后回复
                  0
                  • DigaD 离线
                    DigaD 离线
                    Diga
                    编写于 最后由 编辑
                    #11

                    把你流程讲一下,正常流程是不可能出现 isRxBusy = false,中断仍使能的情况。你有异步调用开启接收,或者 abort 接收?

                    1 条回复 最后回复
                    0
                    • huorunfaH 离线
                      huorunfaH 离线
                      huorunfa
                      编写于 最后由 编辑
                      #12

                      我们当前的流程是任务A负责调用 LINFlexD_UART_DRV_ReceiveData 开启接收,之后等待接收回调函数触发。另有一个软件定时器监控接收超时,超时后会调用 LINFlexD_UART_DRV_AbortReceivingData 将接收abort。(已知软件定时器不会抢占 任务A 的时间片,因此不会出现任务A执行 LINFlexD_UART_DRV_ReceiveData 接口的同时被软件定时器回调函数打断)。
                      我刚刚的意思是任务A执行LINFlexD_UART_DRV_ReceiveData 的过程被LINFlexD_UART_DRV_ErrIRQHandler 打断进而有概率出现“状态是 isRxBusy 是 false,但中断仍使能”的情况

                      1 条回复 最后回复
                      0

                    • 云途开发生态介绍

                      快速上手云途开发生态

                    • 云途论坛规则/Yuntu Forum Rules

                      发帖前请查看

                    • YT CONFIG TOOL调查问卷

                      帮助改进和优化YT CONFIG TOOL,有机会抽取YTM32B1ME0 EVB哦...

                    • can
                      28
                      demo
                      26
                      uds
                      14
                      lin stack
                      13
                      fbl
                      6
                      md14
                      6
                      yt-link
                      6
                      adc模块
                      4
                      Online Users
                      JETTJ
                      JETT
                      李秉薇李
                      李秉薇
                      skai353535S
                      skai353535
                      • 登录

                      • 登录或注册以进行搜索。
                      • 第一个帖子
                        最后一个帖子
                      0
                      • 版块
                      • 最新
                      • 标签
                      • 热门