最近在调试S32K314串口的时候遇到了一个问题,之前使用的是GD32/STM32平台,在串口用作实时打印发送的时候,我的做法是这样的:由APP层处理打印字符,调用底层写函数以中断的方式发送出去



这里会直接写到数据寄存器中,很快就会发送出去,所以当APP层有庞大的数据发送下来也不用慌张,因为还有队列,发送数据很快。但是当使用S32K3我发现异步发送函数执行起来比较慢Lpuart_Uart_Ip_AsyncSend,里面一层套一层,相对来说同样字节的打印数据,S32K3比GD32要慢很多。AI给出一个办法

在APP层将一个一个写入的方式改成用大缓存写入底层,然后底层写函数和中断用下面这种方式


这种方式在速度上的确会有所进步,不过要占用很大的ram空间,请问有没有什么更好的办法在空间和效率上都更好一些?