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

YunTu Forum

YTMicro.com
  1. 主页
  2. Discussion & Question
  3. YTM32B1M系列
  4. YTM32B1ME0频繁进入UART错误中断

YTM32B1ME0频繁进入UART错误中断

已定时 已固定 已锁定 已移动 YTM32B1M系列
9 帖子 2 发布者 91 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • guangnanG 离线
    guangnanG 离线
    guangnan
    编写于 最后由 编辑
    #1

    如图,UART一直进入RXOVERRUN的错误中断里面。已经配置了对应的错误回调函数去记录错误,在错误发生之后做了UART的去初始化和重新初始化,进入到这个中断多次之后会直接进入到HardFault里面。这个错误状态会在什么情况下发生呢?以及该如何避免这个错误发生?求指教。
    d4a9205d-f017-4241-824e-f6ed746029a7-image.png
    1afd8c43-cd22-4223-b0d4-5f812813e721-image.png

    1 条回复 最后回复
    0
    • FrankF 离线
      FrankF 离线
      Frank YunTu
      编写于 最后由 编辑
      #2
      1. 发生RXOVERRUN错误,说明接收buffer数据溢出,把接收中断优先级提高,避免被打断,可避免该错误。另外,进入HardFault的问题,跟调用DeInit的时机有关,如果调用过程中总线上仍然有未完成的数据,则有概率在DeInit执行后又产生中断,导致错误中断中访问非法地址。下周会发布一个HotFix版本修复进入hardfault的问题。
      2. 重新初始化无法解决RxOverRun错误,只能通过提高中断优先级避免接收过程被打断来解决
      guangnanG 1 条回复 最后回复
      0
      • guangnanG 离线
        guangnanG 离线
        guangnan
        回复了Frank 最后由 编辑
        #3

        Frank 你好,我现在尝试把UART的中断等级调至最高等级1也还是会进入到RXOVERRUN错误中。15f5e470-aa31-4193-bdc2-d842d3a43c9c-image.png
        我在发送接收前使用了如下函数做一个同步间隔的发送,是否会跟这个函数有关系1e3a5267-f6a5-45ac-8dc9-314c045ba72d-image.png

        1 条回复 最后回复
        0
        • FrankF 离线
          FrankF 离线
          Frank YunTu
          编写于 最后由 编辑
          #4

          我看错了以为是Mcal,不过SDK是一样的道理,接收过程中打断就会很容易产生Overrun错误

          guangnanG 1 条回复 最后回复
          0
          • guangnanG 离线
            guangnanG 离线
            guangnan
            回复了Frank 最后由 编辑
            #5

            Frank 我现在把其他的任务都关闭了只做UART的收发都还是会进入这个错误中,现在这个产生OverRun错误的原因是否跟打断没有关系呢

            FrankF 1 条回复 最后回复
            0
            • FrankF 离线
              FrankF 离线
              Frank YunTu
              回复了guangnan 最后由 编辑
              #6

              guangnan 建议你跑下EVB的demo去验证下

              guangnanG 1 条回复 最后回复
              0
              • guangnanG 离线
                guangnanG 离线
                guangnan
                回复了Frank 最后由 编辑
                #7

                Frank 我这边跑完DEMO之后发现UART CAN都初始化之后,在往外发送UART信号时,给板子发CAN信号就会导致进错误。我已经尝试过把UART的中断优先级调到1,但是仍然会错误。现在还是优先级导致的错误吗?还是说还有其他因素会导致错误呢?这边用的是UART1和CAN0。

                1 条回复 最后回复
                0
                • FrankF 离线
                  FrankF 离线
                  Frank YunTu
                  编写于 最后由 编辑
                  #8

                  这个错误只在UART接收时才会出现,发送出现这个错误应该是其他问题导致的。另外,检查下有没有关全局中断的操作。

                  guangnanG 1 条回复 最后回复
                  0
                  • guangnanG 离线
                    guangnanG 离线
                    guangnan
                    回复了Frank 最后由 编辑
                    #9

                    Frank 我的板子上用了UART转CAN的芯片,会把发送出去的数据回环到接收上,所以接收也是打开了的

                    1 条回复 最后回复
                    0

                  • 云途论坛规则/Yuntu Forum Rules

                    发帖前请查看

                  • YCT离线License申请流程

                    帮助没办法联网的电脑使用YCT

                  • YT CONFIG TOOL调查问卷

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

                  • demo
                    12
                    can
                    8
                    lin stack
                    6
                    yt-link
                    5
                    vscode
                    3
                    adc模块
                    2
                    i2c
                    2
                    uuid
                    2
                    Online Users
                    涂俊伟涂
                    涂俊伟
                    EkkoE
                    Ekko
                    文锐文
                    文锐
                    Peihua_HanP
                    Peihua_Han
                    mcM
                    mc
                    • 登录

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