• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

DMA内存到内存后的数据串口读不出来

e1a550fb04059332 2019-01-25 浏览量:555
DMA内存到内存后的数据串口读不出来,只能读出原始数据,为何?
将chtx复制到chrx,然后串口分别输出来,结果不能输出chrx,
主要代码如下:
uint8_t chtx[10]={0x0a0x010x0b0x020x0c0x030x040x050x060x07};
  uint8_t chrx[10];

HAL_DMA_Start(&hdma_memtomem_dma1_channel1(uint8_t)&chtx(uint8_t)&chrx10);

      HAL_UART_Transmit(&huart1 "send 15 world\r\n" 15 10);//测试用
      HAL_UART_Transmit(&huart1chtx1020);
      HAL_UART_Transmit(&huart1 "send 15 world\r\n" 15 10);
      HAL_UART_Transmit(&huart1chrx1020);
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 先看看DMA有没有启动吧,两个RAM中的数据是不是移动了。

    再看看串口的配置,

    • 发布于 2019-01-26
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:6
  • 看一下你DMA的初始化设置那里,是否正确使能了DMA的时钟
    • 发布于2019-01-26
    • 举报
    • 评论 0
    • 0
    • 0

  • dma外设是否正常初始化了?是否与串口绑定了?在cubemx里面生成一下例程试试?
    • 发布于2019-01-28
    • 举报
    • 评论 0
    • 0
    • 0

  • 检查你的DMA地址是不是设置正确了,有可能是地址设置的问题
    • 发布于2019-01-29
    • 举报
    • 评论 0
    • 0
    • 0

  • DMA需要做初始化设置,并且使能。
    • 发布于2019-01-31
    • 举报
    • 评论 0
    • 0
    • 0

  • dma没有初始化好,最后一步需要使能dma传输才能进行传输
    • 发布于2019-02-02
    • 举报
    • 评论 0
    • 0
    • 0

  • 是不是你DMA参数设置的不对呢,一旦控制器初始化完成数据开始传送DMA就可以脱离CPU独立完成数据传送。 
    • 发布于2019-02-21
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

DMA内存到内存后的数据串口读不出来