TI中文支持网
TI专业的中文技术问题搜集分享网站

C6748的EDMA如何在存储一半时,重头开始存储

如题,比如EDMA之前配置的存储1024个字节,存到512个的时候发现数据不对,想覆盖前面的512个字节从头开始存储,这个有什么办法吗?之前的帖子有说 先EDMA3DisableTransfer();再EDMA3DisableTransfer();重新配置param.这个方法好像不行.

Shine:

要等1024个字节传输完了才disable。

fei jie:

回复 Shine:

我在1024字节传输完成中断里面,EDMA3DisableTransfer(),并且关闭了spi0,处理完数据再开启的时候,原先存储位置的数据就乱了,程序停在_CODE_ACESS void free();这个大概是什么原因,我一次传输完成以后,要怎么暂停?怎么再启动呢?

fei jie:

回复 Shine:

看了一下手动传输方式,只需要向事件设置寄存器ESR相应的位写1就能触发一次SPI的EDMA传输?例如我配置paramset,一共配置了1024字节,我手动置位SER相应位,EDMA是不是等到SPI有接收数据,并且接收到1024字节后就传输完成中断?下次我需要继续接收数据就再次手动触发?

Shine:

回复 fei jie:

手动触发方式一般调试时使用的,实际是用SPI收发事件去触发EDMA。

fei jie:

回复 Shine:

那想SPI接收到1024字节,暂停存储,过段时间再开始接收,这样的操作有什么方式吗?只能关SPI?

fei jie:

回复 Shine:

关闭SPI后再次进行paramset + 使能SPI,程序会跑飞到_CODE_ACESS void free();??

赞(0)
未经允许不得转载:TI中文支持网 » C6748的EDMA如何在存储一半时,重头开始存储
分享到: 更多 (0)