S32K314 UART

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

S32K314 UART

197 Views
Joker_Y
Contributor III

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

Joker_Y_2-1781951653320.png

Joker_Y_4-1781951712695.pngJoker_Y_5-1781951735385.png

 

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

Joker_Y_6-1781952019622.png

 

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

Joker_Y_7-1781952213976.png

Joker_Y_8-1781952251883.png

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

 

 

 

Tags (1)
0 Kudos
Reply
3 Replies

147 Views
db16122
Contributor IV

do you use any operating system at MCU level or just baremetal?

0 Kudos
Reply

97 Views
Joker_Y
Contributor III

使用的操作系统

Tags (1)
0 Kudos
Reply

89 Views
Senlent
NXP TechSupport
NXP TechSupport

Hi@Joker_Y

如果可以的话,你可以尝试直接用寄存器来实现LPUART的发送。

0 Kudos
Reply