<?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>MCUXpresso SDK中的主题 Re: UART_SendEDMA sends only one byte</title>
    <link>https://community.nxp.com/t5/MCUXpresso-SDK/UART-SendEDMA-sends-only-one-byte/m-p/743887#M527</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks. The example is basically the same code I've written. The problem with my code was the TX Fifo Watermark set to 1. I set it to 0 and starts to send normally.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 09 Jan 2018 11:03:29 GMT</pubDate>
    <dc:creator>RodrigoCesardaS</dc:creator>
    <dc:date>2018-01-09T11:03:29Z</dc:date>
    <item>
      <title>UART_SendEDMA sends only one byte</title>
      <link>https://community.nxp.com/t5/MCUXpresso-SDK/UART-SendEDMA-sends-only-one-byte/m-p/743885#M525</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I'm using a MK60DN512VLL10 in a project with KSDK 2.0 and MCUXpresso 10.1. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;My first attempt was a interrupt mode with ringbuffer, but I was getting RxHardwareOverrun with some frequency. Now I'm trying to use DMA. That's the code:&lt;/P&gt;&lt;BLOCKQUOTE class="jive_macro_quote jive-quote jive_text_macro"&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Init UART&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; uart_config_t uart_cfg;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;UART_GetDefaultConfig(&amp;amp;uart_cfg);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;uart_cfg.baudRate_Bps = baudrate;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;uart_cfg.parityMode = parity;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;uart_cfg.enableRx = true;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;uart_cfg.enableTx = true;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;uart_cfg.rxFifoWatermark = 1;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;uart_cfg.txFifoWatermark = 1;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;UART_Init(UART4, &amp;amp;uart_cfg, srcClock_Hz);&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Set up the DMA&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DMAMUX_Init(DMAMUX0);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DMAMUX_SetSource(DMAMUX0, 1, kDmaRequestMux0UART4Tx);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DMAMUX_EnableChannel(DMAMUX0, 1);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DMAMUX_SetSource(DMAMUX0, 0, kDmaRequestMux0UART4Rx);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DMAMUX_EnableChannel(DMAMUX0, 0);&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; edma_config_t dma_cfg;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; EDMA_GetDefaultConfig(&amp;amp;dma_cfg);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;EDMA_Init(DMA0, &amp;amp;dma_cfg);&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;// Create EDMA handle. &lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;EDMA_CreateHandle(&amp;amp;g_RxDmaHandle, DMA0, 0);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;EDMA_CreateHandle(&amp;amp;g_TxDmaHandle, DMA0, 1);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;UART_TransferCreateHandleEDMA(UART4, &amp;amp;g_uartDmaHandle, UART_UserCallback, NULL, &amp;amp;g_TxDmaHandle, &amp;amp;g_RxDmaHandle);&lt;/P&gt;&lt;P&gt;...&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Send message&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; sendXfer.data = txBuffer;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;sendXfer.dataSize = txsize;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;txFinished = 0;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;if(UART_SendEDMA(HMI_UART, &amp;amp;g_uartDmaHandle, &amp;amp;sendXfer) != kStatus_Success)&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;return 0;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;return 1;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;...&lt;/P&gt;&lt;P&gt;//UART Callback&lt;/P&gt;&lt;P&gt;void UART_UserCallback(UART_Type *base, uart_edma_handle_t *handle, status_t status, void *userData)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; userData = userData;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (kStatus_UART_TxIdle == status)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; txFinished = 1;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; else if (kStatus_UART_RxIdle == status)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rxFinished = 1;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The problem is that is send only the first byte of the message.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 22 Dec 2017 15:18:58 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MCUXpresso-SDK/UART-SendEDMA-sends-only-one-byte/m-p/743885#M525</guid>
      <dc:creator>RodrigoCesardaS</dc:creator>
      <dc:date>2017-12-22T15:18:58Z</dc:date>
    </item>
    <item>
      <title>Re: UART_SendEDMA sends only one byte</title>
      <link>https://community.nxp.com/t5/MCUXpresso-SDK/UART-SendEDMA-sends-only-one-byte/m-p/743886#M526</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Rodrigo:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I would suggest you refer to NXP DMA transfer demo, this demo shows how to use uart driver with edma.&lt;/P&gt;&lt;P&gt;SDK_2.0_FRDM-K64F\boards\frdmk64f\driver_examples\uart\edma_transfer&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;Daniel&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 03 Jan 2018 08:35:18 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MCUXpresso-SDK/UART-SendEDMA-sends-only-one-byte/m-p/743886#M526</guid>
      <dc:creator>danielchen</dc:creator>
      <dc:date>2018-01-03T08:35:18Z</dc:date>
    </item>
    <item>
      <title>Re: UART_SendEDMA sends only one byte</title>
      <link>https://community.nxp.com/t5/MCUXpresso-SDK/UART-SendEDMA-sends-only-one-byte/m-p/743887#M527</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks. The example is basically the same code I've written. The problem with my code was the TX Fifo Watermark set to 1. I set it to 0 and starts to send normally.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 09 Jan 2018 11:03:29 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MCUXpresso-SDK/UART-SendEDMA-sends-only-one-byte/m-p/743887#M527</guid>
      <dc:creator>RodrigoCesardaS</dc:creator>
      <dc:date>2018-01-09T11:03:29Z</dc:date>
    </item>
  </channel>
</rss>

