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

[复制链接]
1217|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意义不大。
当然,用了也不犯法。

目测是自己程序有问题。


whtwhtw 发表于 2016-7-14 16:04 | 显示全部楼层
还是你设定的问题
xmshao 发表于 2016-7-14 16:43 | 显示全部楼层
是STM8L吧,记得STM8S是没有DMA的。
注意堆栈溢出问题;
另外注意考虑变量存储范围访问问题,即TINY,NEAR寻址范围问题;不过这点编译时一般会有提示。
icecut 发表于 2016-7-14 16:45 | 显示全部楼层
大到地址都超了?
Brand2 发表于 2016-7-14 19:08 | 显示全部楼层
串口通信,一般用不着DMA的吧
 楼主| RF、龙龙 发表于 2016-7-18 09:31 | 显示全部楼层
谢谢各位大神的回答,首先我定义的这个数组是别的地方用的,与DMA一点关系的都没有。很奇怪
您需要登录后才可以回帖 登录 | 注册

本版积分规则

38

主题

173

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部