你的浏览器版本过低,可能导致网站不能正常访问!为了你能正常使用网站功能,请使用这些浏览器。
安 发表于 2016-11-7 15:58 楼主用的哪个CPU。
安 发表于 2016-11-7 16:03 楼主,代码中没有判断HT的状态,也就是HT的状态也就没有被清除掉,加上HT的判断,是不是在传输一半是产生中 ...
安 发表于 2016-11-7 16:08 楼主想实现的是输出一半进行一次中断,传输完成产生一次中断,是吗? 进入中断后,不要先关闭DMA,等处理完 ...
安 发表于 2016-11-7 16:22 清除中断的时候,单独清除试试。
#define DMA_BUFF_SIZE 500
这是源码
DMA_ClearITPendingBit(DMA1_IT_GL1); 这一句就是把 TC HT TE三个DMA中断标志都清掉了
DMA_ClearITPendingBit(DMA1_IT_GL1); 这一句就是把 TC HT TE三个DMA中断标志都清掉了
进入中断后,不要先关闭DMA,等处理完最后关闭。先测试一下HT和TC是否能正常传输。
TC正常 HT第一次是在传输一半中断后面就变成一直是全部传输中断。
还是一样, 变成了每次都全部传输
最开始发现问题是这样的, 我设置AD采样,采样周期2.2us采样一次, 然后用DMA的方式,结果发现没中断一次需要920us, 而我只设置了传输一半中断,buff大小500,也就是采250个AD就中断, 时间应该=250*2.2us=500多us。 时间上差了一倍。然后我就改成全部传输完成中断, 结果时间还是920us,明显出问题了
还是不行,我跑下Cube的例程吧