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

YunTu Forum

YTMicro.com
  1. 主页
  2. Discussion & Question
  3. YTM32B1H系列
  4. can0 无法退出Freeze mode

can0 无法退出Freeze mode

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

    我使用下述代码,发现 can0 无法退出 Freeze mode ,
    2026-04-04_06-59.png
    已经清零 REG32(CAN0_MCR) &= ~(CAN0_MCR_HALT_MASK | CAN0_MCR_FRZ_MASK) 为什么寄存器0x400d0000值还是0x5980000f,使用gdb调试如下图
    2026-04-04_07-00.png

    顺便问一下,在这种模式是不是会导致访问内存时导致 bus fault:SCB_CFSR_BFSR:0x04 IMPRECISERR。
    4f6839f4-c4af-4575-b523-f84632a7a1b2-image.png

    1 条回复 最后回复
    0
    • iyshengI 离线
      iyshengI 离线
      iysheng
      写于 最后由 iysheng 编辑
      #4

      image.png
      改成这样还是不行哦。请问我这些can初始化和can发送对么?使用的 RAM0 MB0。
      是不是 can 初始化有问题呢?

      1 条回复 最后回复
      0
      • iyshengI 离线
        iyshengI 离线
        iysheng
        写于 最后由 编辑
        #2

        可能是在线调试的原因,添加打印测试发现退出了 freeze mode,

            rt_kprintf("can0 mcr:%x\n", REG32(CAN0_MCR));
            REG32(CAN0_MCR) &= ~(CAN0_MCR_HALT_MASK | CAN0_MCR_FRZ_MASK);
            rt_kprintf("can0 mcr:%x\n", REG32(CAN0_MCR));
        

        还有一个问题,使用发送代码,为什么无法发送数据,示波器看波形也没有can 报文发出,PTE5 电平在5V。
        38b979fa-5a50-4205-a109-b902bcdf24d1-image.png

        其中
        f2d622d3-ecbc-417e-be5a-6914dc987cd4-image.png

        是 ram 用的都对么?

        1 条回复 最后回复
        0
        • swustS 在线
          swustS 在线
          swust YunTu
          写于 最后由 编辑
          #3

          使用的MB0的话,清flag应该是CAN0->IFLAG1 = 1<<0; 写ID应该是RAM[1] = msg->id << 18; remote和idle我看偏移是20和21,你这儿是19和20。

          1 条回复 最后回复
          0
          • iyshengI 离线
            iyshengI 离线
            iysheng
            写于 最后由 iysheng 编辑
            #4

            image.png
            改成这样还是不行哦。请问我这些can初始化和can发送对么?使用的 RAM0 MB0。
            是不是 can 初始化有问题呢?

            1 条回复 最后回复
            0
            • swustS 在线
              swustS 在线
              swust YunTu
              写于 最后由 编辑
              #5

              Flexcan_Demo_Register_Option.zip供参考

              iyshengI 1 条回复 最后回复
              0
              • iyshengI 离线
                iyshengI 离线
                iysheng
                在 回复了 swust 最后由 编辑
                #6

                swust 非常感谢😊 ,我仔细对比了下,初步判断是我开了 loopback 模式导致的。目前已经可以发送can报文了。

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

                  swust 你好,又有了新问题,现在只能发送一次can帧(使用的can0),调试发现

                  正常写完 code 为 0XC 之后,发送成功后会自动退回到 0X8 状态,但是发现还是 0XC 状态
                  image.png

                  915a086b-4969-47dc-b0e7-02c9fe90ef2d-image.png

                  请问这是什么原因啊?

                  1 条回复 最后回复
                  0
                  • swustS 在线
                    swustS 在线
                    swust YunTu
                    写于 最后由 编辑
                    #8

                    没清中断标志 发送前清IFLAG1

                    1 条回复 最后回复
                    0
                    • iyshengI 离线
                      iyshengI 离线
                      iysheng
                      写于 最后由 编辑
                      #9

                      image.png
                      上图是我写的发送代码,可以看到发送之前是清了 IFLAG1 的,并且从前面的打印可以看出读上来 IFLAG1 和 FLAG2 都是 0。

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

                        通过对比测试添加了这几行代码后正常了,好奇怪,这几个寄存器为什么会影响发送呢?我看了下不是应该影响接收滤波器么?

                        image.png

                        1 条回复 最后回复
                        0
                        • swustS 在线
                          swustS 在线
                          swust YunTu
                          写于 最后由 编辑
                          #11

                          这几个寄存器位于RAM,CAN控制器工作时会访问到

                          1 条回复 最后回复
                          0
                          • ,FrankieF Frankie 将这个主题转为问答主题
                          • ,FrankieF Frankie 将这个主题标记为已解决

                        • 云途开发生态介绍

                          快速上手云途开发生态

                        • 云途论坛规则/Yuntu Forum Rules

                          发帖前请查看

                        • YT CONFIG TOOL调查问卷

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

                        • can
                          25
                          demo
                          22
                          lin stack
                          13
                          uds
                          13
                          md14
                          6
                          yt-link
                          6
                          fbl
                          5
                          adc模块
                          4
                          Online Users
                          chenchaoC
                          chenchao
                          jack 0J
                          jack 0
                          swustS
                          swust
                          ZXZ
                          ZX
                          李富贵李
                          李富贵
                          MonsterM
                          Monster
                          NooBN
                          NooB
                          FunchovyF
                          Funchovy
                          yangkeY
                          yangke
                          Evan_SongE
                          Evan_Song
                          • 登录

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