Hii、
我正在使用 s32k148 评估板并使用这个 s32 ide 我想将 UART TX 配置为 DMA,将 UART RX 配置为中断模式,谁能帮我如何将它们单独配置。因为在使用 MEX 驱动程序时,我们只能在一种模式下配置实例,即只能在 dma/interrupt 模式下配置实例。
嗨,@Vamshi_、
驱动程序(S32 配置工具)无法分离通道。需要将 DMA 和中断分开的原因是什么?为什么不将 DMA 用于 TX& RX?
致以最诚挚的问候,
Julián
嗨,@Vamshi_、
我认为这是可能的,但你必须手动配置一些东西,例如分离 Tx&Rx 中断,以及只初始化 Tx 的 DMA。
1.配置"LPUART_UART_IP_USING_DMA" 时,Tx& Rx 通道都需要。如果要生成配置工具代码,必须将这两个通道路由到 DMA 通道。
2.对 Rx 中断启用 CTRL[RIE],对 Tx 中断禁用 CTRL[TIE]。
3.在主代码中
发送(DMA):调用 Lpuart_Uart_Ip_AsyncTransmit()(启用LPUART_IP_USING_DMA时使用 DMA)。
RX(中断):调用 Lpuart_Uart_Ip_AsyncReceive(),并安装用户回调。在 LPUART_UART_IP_EVENT_RX_FULL 回调(使用 Lpuart_Uart_Ip_SetRxBuffer())中定期 RESET RX 缓冲区以实现持续接收。
我没有进行过测试,因为这只是个小概率事件,但我相信它应该是可行的。
此外,如果能满足您的要求,您还可以启用 DMA ISR 来代替分离通道。
我可以尝试测试配置,但需要一些时间。
致以最诚挚的问候,
Julián
嘿,感谢您的回复,但根据我的项目要求,我必须以这样的方式进行操作,如基于 tx - dma 和 rx - 中断,但我无法弄清如何做到这一点。
嗨,@Vamshi_、
是的。如前所述,配置工具不支持分离通道。它是控制器专用的。
致以最诚挚的问候,
Julián