<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: IMXRT LPUART non-blocking transfer API makes error handling difficult in i.MX RT Crossover MCUs</title>
    <link>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/IMXRT-LPUART-non-blocking-transfer-API-makes-error-handling/m-p/2394935#M36859</link>
    <description>&lt;P&gt;All possible errors.&amp;nbsp; This applies to pretty much all peripherals (SPI, I2C, etc) that have a transfer API but no error handling.&amp;nbsp; LPUART on IMXRT1172 specifically has framing, parity, and noise errors that aren't handled.&amp;nbsp; Unfortunately right now all these peripherals require some hacking to handle errors when using the transfer API.&amp;nbsp; I had to override the actual default IRQ handlers to check for errors before calling the SDK handler.&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;-m&lt;/P&gt;</description>
    <pubDate>Tue, 14 Jul 2026 11:44:04 GMT</pubDate>
    <dc:creator>nxp16</dc:creator>
    <dc:date>2026-07-14T11:44:04Z</dc:date>
    <item>
      <title>IMXRT LPUART non-blocking transfer API makes error handling difficult</title>
      <link>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/IMXRT-LPUART-non-blocking-transfer-API-makes-error-handling/m-p/2394386#M36848</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;I've been looking at the "transfer" API for LPUART, for interrupt-based non-blocking transfers.&amp;nbsp; It seems to do a decent job of wrapping all the "happy case" handling of LPUART interrupts, etc, and providing a good high level API for just receiving data when it's ready (i.e. handling IDLE, RX ready, TX complete, etc).&amp;nbsp; However, it makes handling UART errors very difficult.&amp;nbsp;&lt;/P&gt;&lt;P&gt;There is no error handling inside the LPUART_TransferHandleIRQ function, and just after that function in fsl_lpuart.c is a bogus empty LPUART_TransferHandleErrorIRQ containing a comment "To be implemented by the user".&amp;nbsp; This looks completely half-baked.&lt;/P&gt;&lt;P&gt;The only way to actually handle UART errors seems to be to override the default LPUARTx_IRQHandler functions so that instead of calling LPUARTx_RX_DriverIRQHandler (or TX), you'd have to call your own function that handles errors and passes on "happy case" interrupts to the original LPUARTx_RX/TX_DriverIRQHandler so it can call into LPUART_TransferHandleErrorIRQ.&lt;/P&gt;&lt;P&gt;In addition you'd have to enable those error interrupts yourself outside the transfer API by calling LPUART_EnableInterrupts, and in your error handling also call LPUART_DisableInterrupts and deal with clearing them, etc.&lt;/P&gt;&lt;P&gt;This seems like a lot of extra hassle to handle errors.&amp;nbsp; Why is this not baked into the transfer API itself?&lt;/P&gt;&lt;P&gt;-m&lt;/P&gt;</description>
      <pubDate>Mon, 13 Jul 2026 11:53:08 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/IMXRT-LPUART-non-blocking-transfer-API-makes-error-handling/m-p/2394386#M36848</guid>
      <dc:creator>nxp16</dc:creator>
      <dc:date>2026-07-13T11:53:08Z</dc:date>
    </item>
    <item>
      <title>Re: IMXRT LPUART non-blocking transfer API makes error handling difficult</title>
      <link>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/IMXRT-LPUART-non-blocking-transfer-API-makes-error-handling/m-p/2394550#M36851</link>
      <description>&lt;P&gt;Hello&amp;nbsp;&lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/70127"&gt;@nxp16&lt;/a&gt;,&lt;/P&gt;
&lt;P&gt;Thank you for the detailed feedback. I understand that the SDK could be a little ambiguous since these are intended to provide a common use cases for each peripheral functionality. We are constantly working to improve our APIs thanks also of recommendations like this. Thank you for the recommendations, and we hope that LPUART's error handling will be implemented in future releases.&lt;BR /&gt;On the other hand, could you please let me know which specific error conditions you are interested in handling and which device you are using? With that information, I can suggest documentation related to those error conditions that may help with your implementation.&lt;/P&gt;
&lt;P&gt;BR&lt;BR /&gt;Habib&lt;/P&gt;</description>
      <pubDate>Mon, 13 Jul 2026 21:57:17 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/IMXRT-LPUART-non-blocking-transfer-API-makes-error-handling/m-p/2394550#M36851</guid>
      <dc:creator>Habib_MS</dc:creator>
      <dc:date>2026-07-13T21:57:17Z</dc:date>
    </item>
    <item>
      <title>Re: IMXRT LPUART non-blocking transfer API makes error handling difficult</title>
      <link>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/IMXRT-LPUART-non-blocking-transfer-API-makes-error-handling/m-p/2394935#M36859</link>
      <description>&lt;P&gt;All possible errors.&amp;nbsp; This applies to pretty much all peripherals (SPI, I2C, etc) that have a transfer API but no error handling.&amp;nbsp; LPUART on IMXRT1172 specifically has framing, parity, and noise errors that aren't handled.&amp;nbsp; Unfortunately right now all these peripherals require some hacking to handle errors when using the transfer API.&amp;nbsp; I had to override the actual default IRQ handlers to check for errors before calling the SDK handler.&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;-m&lt;/P&gt;</description>
      <pubDate>Tue, 14 Jul 2026 11:44:04 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/IMXRT-LPUART-non-blocking-transfer-API-makes-error-handling/m-p/2394935#M36859</guid>
      <dc:creator>nxp16</dc:creator>
      <dc:date>2026-07-14T11:44:04Z</dc:date>
    </item>
    <item>
      <title>Re: IMXRT LPUART non-blocking transfer API makes error handling difficult</title>
      <link>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/IMXRT-LPUART-non-blocking-transfer-API-makes-error-handling/m-p/2395100#M36862</link>
      <description>&lt;P&gt;Hello&amp;nbsp;&lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/70127"&gt;@nxp16&lt;/a&gt;,&lt;/P&gt;
&lt;P&gt;I understand that this may require additional development time, sorry for that, we continuing working to improve our SDKs. As a reference, you may review the following structure of the SDK (version 26.6) function called "LPUART_TransferHandleIRQ" and implement a similar recovery flow as your application requires.&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Habib_MS_1-1784062752001.png" style="width: 999px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/392297i1130A2A44C5E0A70/image-size/large?v=v2&amp;amp;px=999" role="button" title="Habib_MS_1-1784062752001.png" alt="Habib_MS_1-1784062752001.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;BR&lt;BR /&gt;Habib&lt;/P&gt;</description>
      <pubDate>Tue, 14 Jul 2026 21:04:27 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/IMXRT-LPUART-non-blocking-transfer-API-makes-error-handling/m-p/2395100#M36862</guid>
      <dc:creator>Habib_MS</dc:creator>
      <dc:date>2026-07-14T21:04:27Z</dc:date>
    </item>
    <item>
      <title>Re: IMXRT LPUART non-blocking transfer API makes error handling difficult</title>
      <link>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/IMXRT-LPUART-non-blocking-transfer-API-makes-error-handling/m-p/2395452#M36867</link>
      <description>&lt;P&gt;Yes, I've already implemented something similar.&amp;nbsp; Thanks for sending that.&lt;/P&gt;</description>
      <pubDate>Wed, 15 Jul 2026 11:56:56 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/IMXRT-LPUART-non-blocking-transfer-API-makes-error-handling/m-p/2395452#M36867</guid>
      <dc:creator>nxp16</dc:creator>
      <dc:date>2026-07-15T11:56:56Z</dc:date>
    </item>
    <item>
      <title>Re: IMXRT LPUART non-blocking transfer API makes error handling difficult</title>
      <link>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/IMXRT-LPUART-non-blocking-transfer-API-makes-error-handling/m-p/2395601#M36870</link>
      <description>&lt;P&gt;Hello&amp;nbsp;&lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/70127"&gt;@nxp16&lt;/a&gt;,&lt;/P&gt;
&lt;P&gt;Please let me know if you have any further questions.&lt;BR /&gt;BR&lt;BR /&gt;Habib&lt;/P&gt;</description>
      <pubDate>Wed, 15 Jul 2026 21:50:28 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/IMXRT-LPUART-non-blocking-transfer-API-makes-error-handling/m-p/2395601#M36870</guid>
      <dc:creator>Habib_MS</dc:creator>
      <dc:date>2026-07-15T21:50:28Z</dc:date>
    </item>
  </channel>
</rss>

