用DMA模式把从串口接收到的数移动至内存,之前每次收到的数小于1k都是没问题的。现在有个问题,如何一次收到的数超过1k怎么办,我试了试,DMA一次最多传递1024个,后面的就不知道去哪了,后面的也不会覆盖前面的值。
我想的是不是有DMA接收全满中断,在DMA接收缓存区全满之后,进入中断,把数存到另一个地方,然后清空DMA接收缓存区,再继续接收uart收到的数据。
但是查了半天,也没看见DMA接收中断里面什么获取标志位,判断是不是全满中断…这些,可能是例程都没有,官方数据库也没有这个。
不知道有没有谁研究过做过这个地方,希望大神告知,或者还有什么别的方法嘛? |