各位大牛:
小弟,刚接手用stm337的SDADC实现三路实时采样USB传输的项目,先已经基本实现一路,但问题时,采出的波形部分丢失。
我的思路如下: 用SDADC1的通道注入模式,循环采集,DMA搬数,循环模式,DMA的深度为512,当DMA全部传输产生中断,然后我
就去搬移,然后USB发送。
我测试如下: 我用信号源给500HZ正玄信号输入,USB接收来的数用上位机绘出。
遇到好几个问题如下:
1.DMA每次产生全部传输完中断后,我就从buf1搬到buf2,但是bug下单步发现,搬到同时,buf1的数据含在变化,即就是SDADC1还在采集,
那么这样,我就会覆盖数据,buf2中也不是实时数据,我改怎么弄?
2.我试图加大DMA的深度,buf1大小到4k short型,但仍然还是覆盖?为什么
2.我试图用定时器控制注入速率,即采样率,降低采样率。但还是丢,为什么?
3.还是一种想法,当进入DMA中断后,切换下次搬移目的地址,搬移另一个buf,但是怎么实现?这种思路是否正确?
4.各位大牛,有什么高招?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
DMA最大数据量是65535,可不是65536.
至于单位,就看你是按字节传输、半字传输还是字传输了,并不一定表示字节。官方的说法是number of items to be transfer.
一周热门 更多>