打印
[STM8]

在使用DMA碰到一个奇怪的问题

[复制链接]
1003|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
RF、龙龙|  楼主 | 2016-7-14 14:25 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
最近在使用DMA做内存和串口之间的数据传输,发现一个奇怪的问题,我在使用DMA功能后,程序中不能定义太大的数组,假如我定义了一个大数组,只要对这个数组进行操作,DMA传输的数据就全部为零了,当我把这个数组变小点,这个问题就没了,很奇怪,这个数组与DMA都没有关系。各位大神有没有遇到这种情况,求解答,谢谢
沙发
RF、龙龙|  楼主 | 2016-7-14 14:32 | 只看该作者
也不是DMA传输的数数都为零,好像是DMA根本没有进行数据传输

使用特权

评论回复
板凳
ideafor| | 2016-7-14 15:58 | 只看该作者
你定义的这个数组是dma要做缓存的那个吗

使用特权

评论回复
地板
玄德| | 2016-7-14 16:02 | 只看该作者
串口通信,犯不着预留一个大缓冲器,用DMA意义不大。
当然,用了也不犯法。

目测是自己程序有问题。


使用特权

评论回复
5
whtwhtw| | 2016-7-14 16:04 | 只看该作者
还是你设定的问题

使用特权

评论回复
6
xmshao| | 2016-7-14 16:43 | 只看该作者
是STM8L吧,记得STM8S是没有DMA的。
注意堆栈溢出问题;
另外注意考虑变量存储范围访问问题,即TINY,NEAR寻址范围问题;不过这点编译时一般会有提示。

使用特权

评论回复
7
icecut| | 2016-7-14 16:45 | 只看该作者
大到地址都超了?

使用特权

评论回复
8
Brand2| | 2016-7-14 19:08 | 只看该作者
串口通信,一般用不着DMA的吧

使用特权

评论回复
9
RF、龙龙|  楼主 | 2016-7-18 09:31 | 只看该作者
谢谢各位大神的回答,首先我定义的这个数组是别的地方用的,与DMA一点关系的都没有。很奇怪

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

38

主题

173

帖子

0

粉丝