完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
方法一:
if(DMA1->ISR&(1<<13))//等待通道4传输完成 {DMA1->IFCR|=1<<13;} //前一组数据发送完成,进入发送程序 else {return ;} //前一组数据没有发送完,退出发送程序 DMA发送数据........... 方法二: pro=DMA1_Channel4->CNDTR;//得到当前还剩余多少个数据 if(pro!=0)//等待通道4传输完成 {return ;} //前一组数据没有发送完,退出发送程序 DMA发送数据...........//前一组数据发送完成,进入发送程序 请问原子: 我的程序需要连续发送数据,发送速度比较快,所以在每次DMA发送时都需判断上一次数据是否已经发送完成,根据DMA例程序,我用DMA1发送完成标志位与剩余数据的多少,两种方法来判断上一次数据是否发送完成,可是两种判断结果都表示上一次数据没有发送完成,第一次也是这样,造成任何数据都没有发送出来,如果屏蔽判断,则程序能连续发送数据,只是前一组数据还没发送完,而第二组数据就开始发送了,造成每组数据的尾部丢失。 这是为什么,如何解决, 我后来自己试了下,发现第一次这两个条件一开机就表示数据没有发送完成,所以我暂时定义了一个变量来区别是不是刚开机,如果是刚开机,则不去判断,以后就只判断ISR标志,问题暂时是解决了,不知道还有没有什么好的办法. |
|
相关推荐
1个回答
|
|
|
回复【楼主位】kangtianhong:
------------------------------- 有个办法,一开机,你在初始化函数里面清除掉当前的标志.从而让DMA回到真正的准备状态. |
|
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
4204 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
3263 浏览 1 评论
2795 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
2227 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
15146 浏览 2 评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
3167浏览 4评论
stm32f4下spi+dma读取数据不对是什么原因导致的?
1940浏览 3评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
2107浏览 3评论
2019浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
2216浏览 3评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-13 08:46 , Processed in 0.654319 second(s), Total 75, Slave 57 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
12363