野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8698|回复: 7

关于DMA的数据传输问题

[复制链接]
发表于 2017-10-30 20:51:59 | 显示全部楼层 |阅读模式
火哥的代码上只有传输字符‘P’这种例程,现在我想把从MUP6050接收过来的数据通过DMA传输的方式发给串口再显示,该怎么做?说白了,就是如何在原有的代码上改成传输我想任意传输的数据(数字或者文字)
源代码:  
/*填充将要发送的数据*/
  for(i=0;i<SENDBUFF_SIZE;i++)
  {
    SendBuff[i]        = 'P';
  }

希望帮忙解决

回复

使用道具 举报

发表于 2017-10-31 08:44:04 | 显示全部楼层
I2C的我也没有用过 DMA,不过你可以参考我们串口DMA的例程
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-10-31 08:56:28 | 显示全部楼层
本帖最后由 求求求求知 于 2017-10-31 08:58 编辑


我修改了好几次,就是不知道该怎么发送任意的数据
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-10-31 08:58:51 | 显示全部楼层
flyleaf 发表于 2017-10-31 08:44
I2C的我也没有用过 DMA,不过你可以参考我们串口DMA的例程

串口DMA的例程我研究一天了,目前一个问题我还是没有解决,就是如何在存储器到外设的DMA传输中,不发源代码中的字符‘P’,而是发送任意数据,比如发送1~5000的数字 呢?
我修改了好几次,就是不知道该怎么发送任意的数据
回复 支持 反对

使用道具 举报

发表于 2017-10-31 09:25:34 | 显示全部楼层
for(i=0;i<SENDBUFF_SIZE;i++)
  {
    SendBuff[i]        = i ;
  }

这样可以发送256以内的数字,超过的话要用两个字节表示一个数字例如先发送高8位,再发送低8位
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-10-31 10:20:22 | 显示全部楼层

这样的话,串口助手上就显示不了信息,不过如果改成十六进制显示就可以,是什么原因呢
回复 支持 反对

使用道具 举报

发表于 2017-10-31 14:50:45 | 显示全部楼层
楼主,这个不难的,你想发送任意数据,只要把 SendBuff[] 填充为你想要发送的数据 不就可以了吗?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-10-31 19:25:09 | 显示全部楼层
小伟V 发表于 2017-10-31 14:50
楼主,这个不难的,你想发送任意数据,只要把 SendBuff[] 填充为你想要发送的数据 不就可以了吗?

主要就是数据在串口助手上面无法显示,以十六进制显示倒是可以。灰常谢谢大家的解答
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2025-1-17 00:54 , Processed in 0.034499 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表