初级会员

- 积分
- 102
- 金钱
- 102
- 注册时间
- 2014-11-3
- 在线时间
- 0 小时
|
发表于 2014-11-13 14:35:44
|
显示全部楼层
回复【13楼】正点原子:
---------------------------------
我在这个网站里找到了一些相关资料,想请教原子哥的是:
我使用了DMA双缓存,使用了DMA中断,当DMA完成一个缓存的数据转移时,产生中断,此时我在中断服务函数里用DMA_GetCurrentMemoryTarget(DMA2_Stream0)来判断当前正在进行存储的是哪一个缓存,如果是第二个缓存正在缓存,那就打印了第一个缓存中的数据,
反之打印第二个缓存的数据。但是打印出来的数组并不是打印了第一个缓存再打印第二个缓存,再打印第一个缓存,依次下去。而是杂乱的打印,比如:1>2>2>2
>2>1>1>2>1>1>1.......
我的问题是:1.DMA在完成一个缓存进入中断服务函数时,DMA还在为另一个缓存存入数据吗?还就执行中断服务程序里的内容?
2.如果DMA还在为另一个缓存存数据的话,那么是不是因为DMA存入数据的数据比打印数据的要快,所以才会这样没有1>2>1>2>1>2的打印
请问原子哥是如何操作,双缓存数据的?是用中断吗?还是有其他的好办法。我的问题可能比较杂,感谢原子哥!! |
|