有关ADC+DMA+USB虚拟串口传输相关问题
本帖最后由 langlangago 于 2024-1-29 11:19 编辑当使用定时器触发ADC采集,使用DMA传输,定义全局变量DMA缓存区buffer,大小为128个数组,采用双缓冲区设计即一个缓存区64个数组,当使用USB VCP打印到串口调试助手上显示的时候,本来应该显示一组64个数值,但是实际显示只有几个数据。
ADC的DMA RAM空间关闭Cache,另外不要使用0x2000 0000地址空间,这个空间不支持通用DMA。
别的地方应该没问题了。 我现在使用DMA半传输完成中断和传输完成中断,但是我定义的128个数组的DMA缓冲区只能一次性全发送,不会乒乓发送,我怀疑是DMA传输的速度太快,而使用的USB VCP传输太慢,这个怎么解决? langlangago 发表于 2024-1-29 22:43
我现在使用DMA半传输完成中断和传输完成中断,但是我定义的128个数组的DMA缓冲区只能一次性全发送,不会乒 ...
DMA传输完成中断里面,先关闭定时器,后面在USB传输完成里面打开,从新开始ADC触发 AiK 发表于 2024-1-30 08:43
DMA传输完成中断里面,先关闭定时器,后面在USB传输完成里面打开,从新开始ADC触发
多谢答疑!我尝试一下
页:
[1]