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

YunTu Forum

YTMicro.com
  1. 主页
  2. Discussion & Question
  3. YTM32B1H系列
  4. 串口发送卡在检测发送完成

串口发送卡在检测发送完成

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

    如下调试打印的函数:

        1 int board_uart_putc(uint8_t c)
        2 {
        3     REG32(LINFLEXD3_UART_DATA0_8) = c;
        4
        5     while ((REG32(LINFLEXD3_UARTSR) & 0X02) == 0X0);
        6
        7     REG32(LINFLEXD3_UARTSR) |= 0X02;
        8     return 0;
        9 }
    

    会不会存在一种情况,数据发送出去了,但是一直卡在循环 while ((REG32(LINFLEXD3_UARTSR) & 0X02) == 0X0);
    我调试的时候发现的:
    2026-06-02_22-04.png

    可以看到 2 实际已经发送出来了,但是还是卡在 while 循环这里。

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

      MCU 的头文件是怎么定义的,看一下 LINFLEXD3_UARTSR 这个寄存器

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

        寄存器定义的是这个

        Screenshot from 2026-06-03 10-22-58.png

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

          emmmm,我说的是你在自己代码里的定义,你发的寄存器定义自己不也能翻文档看到嘛

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

            Diga 不好意思,我补充下定义如下
            2026-06-03 11 56 33.png

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

              推测原因可能是这句代码被优化了,编译器觉得这只是对一个地址的读取,但是没有检测到代码会对这个地址进行修改,所以将这行代码优化成了一个死循环 while(1)。
              可以看一下卡在这个循环的时候,进debug看一下这个寄存器值是不是真的变了,如果变了,那应该就是上面的原因,如果寄存器值没变,再往别的方向分析

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

                是这样,这个卡住不是必现的,随即会出现,比如中断中打印可能会出现。

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

                  这个帖子可以关闭,原因是多线程互斥访问串口没有做好保护。

                  1 条回复 最后回复
                  0
                  • ,xianghanX xianghan 将这个主题标记为已解决

                • 云途开发生态介绍

                  快速上手云途开发生态

                • 云途论坛规则/Yuntu Forum Rules

                  发帖前请查看

                • YT CONFIG TOOL调查问卷

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

                • can
                  28
                  demo
                  23
                  uds
                  14
                  lin stack
                  13
                  md14
                  6
                  yt-link
                  6
                  fbl
                  5
                  adc模块
                  4
                  Online Users
                  • 登录

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