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

YunTu Forum

YTMicro.com
  1. 主页
  2. Discussion & Question
  3. YTM32B1H系列
  4. 串口DMA

串口DMA

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

    请问,YTM32BHA01 使用串口DMA时,不能使用串口的空闲中断吗
    0d12f7f4-2639-4eee-bb41-57d17eb9d85c-image.png
    还有这个函数是不是获取不了DMA模式下串口仍需要接收的字节数。如果获取不了的话,我应该通过什么方式来获取到DMA模式下接收了多少字节的数据

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

      可以参考一下 YCT Demo,LINFlexD 下有个 Linflexd_Uart_Idle_Interrupt_Demo

      BJXB 1 条回复 最后回复
      0
      • BJXB 离线
        BJXB 离线
        BJX
        在 回复了 Diga 最后由 编辑
        #3

        Diga 参考过了 它那个例程就是用上面的那个函数获取的接收数据的字节数,它函数注释里就写了 在DMA下不准,我DMA模式下试了那个函数不咋好用

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

          应该还行啊,不会不准的

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

            Diga 在 串口DMA 中说:

            应该还行啊,不会不准的

            请问你有测试过吗 我这边试了试还是不行啊

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

              我看了下代码,这个函数就是直接读取 DMA 的寄存器,检查DMA 的剩余次数。这个如果再不准,就没法子了

              BJXB 1 条回复 最后回复
              0
              • FrankF 离线
                FrankF 离线
                Frank YunTu
                在 回复了 BJX 最后由 编辑
                #7

                BJX LinFlexD用作串口且使用DMA时不支持空闲中断。

                BJXB gaoShengG 2 条回复 最后回复
                0
                • BJXB 离线
                  BJXB 离线
                  BJX
                  在 回复了 Diga 最后由 编辑
                  #8

                  我想再问几个问题
                  1、48f3384f-dea6-4a11-9bdd-9708c1e3db9b-image.png 请问,我在串口状态结构里面看这个注释说,空闲超时状态仅支持中断模式,DMA是不是就不能用这个功能了?
                  2、d4545d26-02ea-423e-9cb6-37f7ce5cc213-image.png
                  我在测试时发现 我的缓冲区字节数为8,我的程序逻辑是,接收到上位机的数据就把数据返回给上位机,但现象是 只有发送的数据量大于等于8 它才会返回数据,要不然就等待缓冲区填满,然后用rtt打印它那个传输中仍需要接收的字节数就一直为0
                  07cd6c47-8b70-49c4-8d17-532562efcb75-image.png

                  1 条回复 最后回复
                  0
                  • BJXB 离线
                    BJXB 离线
                    BJX
                    在 回复了 Frank 最后由 编辑
                    #9

                    Frank 好的 我看了注释后就没有尝试DMA+空闲中断

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

                      你这个只有接收完成,或者超时,才会去读取剩余多少数据。
                      这个接收完成,应该是你预设了一个接收长度,应该是 8 ,如果收到 8 个数据,才会进这个接收完成回调

                      BJXB 1 条回复 最后回复
                      0
                      • BJXB 离线
                        BJXB 离线
                        BJX
                        在 回复了 Diga 最后由 编辑
                        #11

                        Diga 是这样的,但在DMA模式下不能用空闲中断,所以那个超时事件不能用,有没有其它方法可以在DMA状态下接收不定长数据

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

                          可以软件定时去调用这个函数,比如10ms 一次,当连续几次,获取的剩余个数都未变化时,说明已经接收完成。
                          或者用中断。。

                          1 条回复 最后回复
                          0
                          • BJXB 离线
                            BJXB 离线
                            BJX
                            写于 最后由 编辑
                            #13

                            好的 谢谢你的思路

                            1 条回复 最后回复
                            0
                            • gaoShengG 离线
                              gaoShengG 离线
                              gaoSheng
                              在 回复了 Frank 最后由 编辑
                              #14

                              Frank 请问Mcal支持吗,我看Mcal似乎没有这部分注释,但是在yct工具里面在启动DMA后也不能勾选空闲中断

                              FrankF 1 条回复 最后回复
                              0
                              • FrankF 离线
                                FrankF 离线
                                Frank YunTu
                                在 回复了 gaoSheng 最后由 编辑
                                #15

                                gaoSheng, HA01上串口的Idel中断和同时使用DMA是互斥的,机制上不能共存,不是软件不支持的问题。

                                gaoShengG 1 条回复 最后回复
                                0
                                • gaoShengG 离线
                                  gaoShengG 离线
                                  gaoSheng
                                  在 回复了 Frank 最后由 编辑
                                  #16

                                  Frank 好的,谢谢大佬😘

                                  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
                                  • 登录

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