<?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 FreeRTOS USART DMA not sending in LPC Microcontrollers</title>
    <link>https://community.nxp.com/t5/LPC-Microcontrollers/FreeRTOS-USART-DMA-not-sending/m-p/718935#M29075</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Edit:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The error seems to be that I used the USART, not the UART.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I am using the&amp;nbsp;LPCXpresso4337 Development Board and have connected the USART0 to one of the USB ports on my PC by using a&amp;nbsp;TTL UART serial converter.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I am trying to communicate with the termite terminal by using some of the code from the periph_uart example provided with the board, while running FreeRTOS. I have been able to communicate using the interrupt code from the example, but not DMA. All of the code related to the USART is run through a task, called&amp;nbsp;vUARTTask . When running the program, it seems like the&amp;nbsp;Chip_GPDMA_Transfer does not send anything, since the interrupt is never triggered, the program does not exit the while loop after it. The&amp;nbsp;dmaChannelNumTx is always 0, which might signal an error,&amp;nbsp;&lt;A href="https://community.nxp.com/thread/419226"&gt;DMA channel assignment: no error code?&lt;/A&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have run the periph_uart example project and it worked as expected.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This is the relevant code for the DMA USART:&lt;/P&gt;&lt;BLOCKQUOTE class="jive_macro_quote jive-quote jive_text_macro"&gt;&lt;P&gt;#include "board.h"&lt;BR /&gt;#include "FreeRTOS.h"&lt;BR /&gt;#include "task.h"&lt;BR /&gt;#include "sysSetup.h"&lt;BR /&gt;#include "CRC16.h"&lt;BR /&gt;#include "usbd.h"&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;#define LPC_UART LPC_USART0&lt;BR /&gt;#define UARTx_IRQn USART0_IRQn&lt;BR /&gt;#define UARTx_IRQHandler UART0_IRQHandler&lt;BR /&gt;#define _GPDMA_CONN_UART_Tx GPDMA_CONN_UART0_Tx&lt;BR /&gt;#define _GPDMA_CONN_UART_Rx GPDMA_CONN_UART0_Rx&lt;/P&gt;&lt;P&gt;#define DMA_TIMEOUT 0xA000000&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;static uint8_t dmaChannelNumTx, dmaChannelNumRx;&lt;BR /&gt;static volatile uint32_t channelTC; /* Terminal Counter flag for Channel */&lt;BR /&gt;static volatile uint32_t channelTCErr;&lt;BR /&gt;static FunctionalState isDMATx = ENABLE;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;void App_DMA_Init(void) {&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;BR /&gt; /* Initialize GPDMA controller */&lt;BR /&gt; Chip_GPDMA_Init(LPC_GPDMA);&lt;BR /&gt; /* Setting GPDMA interrupt */&lt;BR /&gt; NVIC_DisableIRQ(DMA_IRQn);&lt;BR /&gt; NVIC_SetPriority(DMA_IRQn, ((0x01 &amp;lt;&amp;lt; 3) | 0x01));&lt;BR /&gt; NVIC_EnableIRQ(DMA_IRQn);&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;void DMA_IRQHandler(void)&lt;BR /&gt;{&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;BR /&gt; uint8_t dmaChannelNum;&lt;BR /&gt; if (isDMATx) {&lt;/P&gt;&lt;P style="padding-left: 60px;"&gt;&lt;BR /&gt; dmaChannelNum = dmaChannelNumTx;&lt;/P&gt;&lt;P style="padding-left: 60px;"&gt;} else {&lt;/P&gt;&lt;P style="padding-left: 60px;"&gt;&lt;BR /&gt; dmaChannelNum = dmaChannelNumRx;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;BR /&gt; }&lt;BR /&gt; if (Chip_GPDMA_Interrupt(LPC_GPDMA, dmaChannelNum) == SUCCESS) {&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;/P&gt;&lt;P style="padding-left: 60px;"&gt;channelTC++;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;BR /&gt; } else {&lt;BR /&gt; channelTCErr++;&lt;BR /&gt; }&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;void vUARTTask(void *pvParameters) {&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;BR /&gt; int tickCnt = 0;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;uint8_t uartTestString[] = "Ticking\n";&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;App_DMA_Init();&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;while (1) {&lt;/P&gt;&lt;P style="padding-left: 60px;"&gt;dmaChannelNumTx = Chip_GPDMA_GetFreeChannel(LPC_GPDMA, _GPDMA_CONN_UART_Tx);&lt;/P&gt;&lt;P style="padding-left: 60px;"&gt;isDMATx = ENABLE;&lt;BR /&gt; channelTC = channelTCErr = 0;&lt;BR /&gt; Chip_GPDMA_Transfer(LPC_GPDMA, dmaChannelNumTx,&lt;BR /&gt; (uint32_t) &amp;amp;uartTestString[0],&lt;BR /&gt; _GPDMA_CONN_UART_Tx,&lt;BR /&gt; GPDMA_TRANSFERTYPE_M2P_CONTROLLER_DMA,&lt;BR /&gt; sizeof(uartTestString));&lt;/P&gt;&lt;P style="padding-left: 60px;"&gt;while (!channelTC) { }&lt;/P&gt;&lt;P style="padding-left: 60px;"&gt;/* About a 1s delay here */&lt;BR /&gt; vTaskDelay(configTICK_RATE_HZ);&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;BR /&gt; }&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;}&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This it the relevant code for the interrupted triggered UART, that works.&amp;nbsp;&lt;/P&gt;&lt;BLOCKQUOTE class="jive_macro_quote jive-quote jive_text_macro"&gt;&lt;P&gt;#include "board.h"&lt;BR /&gt;#include "FreeRTOS.h"&lt;BR /&gt;#include "task.h"&lt;BR /&gt;#include "sysSetup.h"&lt;BR /&gt;#include "CRC16.h"&lt;BR /&gt;#include "usbd.h"&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/* Transmit and receive ring buffers */&lt;BR /&gt;STATIC RINGBUFF_T txring, rxring;&lt;/P&gt;&lt;P&gt;/* Ring buffer size */&lt;BR /&gt;#define UART_RB_SIZE 256&lt;/P&gt;&lt;P&gt;/* Transmit and receive buffers */&lt;BR /&gt;static uint8_t rxbuff[UART_RB_SIZE], txbuff[UART_RB_SIZE];&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;#define LPC_UART LPC_USART0&lt;BR /&gt;#define UARTx_IRQn USART0_IRQn&lt;BR /&gt;#define UARTx_IRQHandler UART0_IRQHandler&lt;BR /&gt;#define _GPDMA_CONN_UART_Tx GPDMA_CONN_UART0_Tx&lt;BR /&gt;#define _GPDMA_CONN_UART_Rx GPDMA_CONN_UART0_Rx&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/* Initialize Interrupt for UART */&lt;BR /&gt;void App_Interrupt_Init(void) {&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;BR /&gt; Chip_UART_IntEnable(LPC_UART, (UART_IER_RBRINT | UART_IER_RLSINT));&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;RingBuffer_Init(&amp;amp;rxring, rxbuff, 1, UART_RB_SIZE);&lt;BR /&gt; RingBuffer_Init(&amp;amp;txring, txbuff, 1, UART_RB_SIZE);&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;NVIC_SetPriority(UARTx_IRQn, 1);&lt;BR /&gt; /* Enable Interrupt for UART channel */&lt;BR /&gt; NVIC_EnableIRQ(UARTx_IRQn);&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;void UARTx_IRQHandler(void) {&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;BR /&gt; Chip_UART_IRQRBHandler(LPC_UART, &amp;amp;rxring, &amp;amp;txring);&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;void vUARTTask(void *pvParameters) {&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;BR /&gt; int tickCnt = 0;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;uint8_t uartTestString[] = "Ticking\n";&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;App_Interrupt_Init();&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;while (1) {&lt;/P&gt;&lt;P style="padding-left: 60px;"&gt;&lt;BR /&gt; Chip_UART_SendRB(LPC_UART, &amp;amp;txring, (uint8_t *) &amp;amp;uartTestString[0], sizeof(uartTestString));&lt;/P&gt;&lt;P style="padding-left: 60px;"&gt;vTaskDelay(configTICK_RATE_HZ);&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;}&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I will add the actual c file as well, see uart_driver.c&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Any help is greatly appreciated.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thank you in advance.&amp;nbsp;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 20 Mar 2018 15:54:33 GMT</pubDate>
    <dc:creator>haakoneh</dc:creator>
    <dc:date>2018-03-20T15:54:33Z</dc:date>
    <item>
      <title>FreeRTOS USART DMA not sending</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/FreeRTOS-USART-DMA-not-sending/m-p/718935#M29075</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Edit:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The error seems to be that I used the USART, not the UART.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I am using the&amp;nbsp;LPCXpresso4337 Development Board and have connected the USART0 to one of the USB ports on my PC by using a&amp;nbsp;TTL UART serial converter.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I am trying to communicate with the termite terminal by using some of the code from the periph_uart example provided with the board, while running FreeRTOS. I have been able to communicate using the interrupt code from the example, but not DMA. All of the code related to the USART is run through a task, called&amp;nbsp;vUARTTask . When running the program, it seems like the&amp;nbsp;Chip_GPDMA_Transfer does not send anything, since the interrupt is never triggered, the program does not exit the while loop after it. The&amp;nbsp;dmaChannelNumTx is always 0, which might signal an error,&amp;nbsp;&lt;A href="https://community.nxp.com/thread/419226"&gt;DMA channel assignment: no error code?&lt;/A&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have run the periph_uart example project and it worked as expected.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This is the relevant code for the DMA USART:&lt;/P&gt;&lt;BLOCKQUOTE class="jive_macro_quote jive-quote jive_text_macro"&gt;&lt;P&gt;#include "board.h"&lt;BR /&gt;#include "FreeRTOS.h"&lt;BR /&gt;#include "task.h"&lt;BR /&gt;#include "sysSetup.h"&lt;BR /&gt;#include "CRC16.h"&lt;BR /&gt;#include "usbd.h"&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;#define LPC_UART LPC_USART0&lt;BR /&gt;#define UARTx_IRQn USART0_IRQn&lt;BR /&gt;#define UARTx_IRQHandler UART0_IRQHandler&lt;BR /&gt;#define _GPDMA_CONN_UART_Tx GPDMA_CONN_UART0_Tx&lt;BR /&gt;#define _GPDMA_CONN_UART_Rx GPDMA_CONN_UART0_Rx&lt;/P&gt;&lt;P&gt;#define DMA_TIMEOUT 0xA000000&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;static uint8_t dmaChannelNumTx, dmaChannelNumRx;&lt;BR /&gt;static volatile uint32_t channelTC; /* Terminal Counter flag for Channel */&lt;BR /&gt;static volatile uint32_t channelTCErr;&lt;BR /&gt;static FunctionalState isDMATx = ENABLE;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;void App_DMA_Init(void) {&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;BR /&gt; /* Initialize GPDMA controller */&lt;BR /&gt; Chip_GPDMA_Init(LPC_GPDMA);&lt;BR /&gt; /* Setting GPDMA interrupt */&lt;BR /&gt; NVIC_DisableIRQ(DMA_IRQn);&lt;BR /&gt; NVIC_SetPriority(DMA_IRQn, ((0x01 &amp;lt;&amp;lt; 3) | 0x01));&lt;BR /&gt; NVIC_EnableIRQ(DMA_IRQn);&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;void DMA_IRQHandler(void)&lt;BR /&gt;{&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;BR /&gt; uint8_t dmaChannelNum;&lt;BR /&gt; if (isDMATx) {&lt;/P&gt;&lt;P style="padding-left: 60px;"&gt;&lt;BR /&gt; dmaChannelNum = dmaChannelNumTx;&lt;/P&gt;&lt;P style="padding-left: 60px;"&gt;} else {&lt;/P&gt;&lt;P style="padding-left: 60px;"&gt;&lt;BR /&gt; dmaChannelNum = dmaChannelNumRx;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;BR /&gt; }&lt;BR /&gt; if (Chip_GPDMA_Interrupt(LPC_GPDMA, dmaChannelNum) == SUCCESS) {&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;/P&gt;&lt;P style="padding-left: 60px;"&gt;channelTC++;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;BR /&gt; } else {&lt;BR /&gt; channelTCErr++;&lt;BR /&gt; }&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;void vUARTTask(void *pvParameters) {&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;BR /&gt; int tickCnt = 0;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;uint8_t uartTestString[] = "Ticking\n";&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;App_DMA_Init();&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;while (1) {&lt;/P&gt;&lt;P style="padding-left: 60px;"&gt;dmaChannelNumTx = Chip_GPDMA_GetFreeChannel(LPC_GPDMA, _GPDMA_CONN_UART_Tx);&lt;/P&gt;&lt;P style="padding-left: 60px;"&gt;isDMATx = ENABLE;&lt;BR /&gt; channelTC = channelTCErr = 0;&lt;BR /&gt; Chip_GPDMA_Transfer(LPC_GPDMA, dmaChannelNumTx,&lt;BR /&gt; (uint32_t) &amp;amp;uartTestString[0],&lt;BR /&gt; _GPDMA_CONN_UART_Tx,&lt;BR /&gt; GPDMA_TRANSFERTYPE_M2P_CONTROLLER_DMA,&lt;BR /&gt; sizeof(uartTestString));&lt;/P&gt;&lt;P style="padding-left: 60px;"&gt;while (!channelTC) { }&lt;/P&gt;&lt;P style="padding-left: 60px;"&gt;/* About a 1s delay here */&lt;BR /&gt; vTaskDelay(configTICK_RATE_HZ);&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;BR /&gt; }&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;}&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This it the relevant code for the interrupted triggered UART, that works.&amp;nbsp;&lt;/P&gt;&lt;BLOCKQUOTE class="jive_macro_quote jive-quote jive_text_macro"&gt;&lt;P&gt;#include "board.h"&lt;BR /&gt;#include "FreeRTOS.h"&lt;BR /&gt;#include "task.h"&lt;BR /&gt;#include "sysSetup.h"&lt;BR /&gt;#include "CRC16.h"&lt;BR /&gt;#include "usbd.h"&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/* Transmit and receive ring buffers */&lt;BR /&gt;STATIC RINGBUFF_T txring, rxring;&lt;/P&gt;&lt;P&gt;/* Ring buffer size */&lt;BR /&gt;#define UART_RB_SIZE 256&lt;/P&gt;&lt;P&gt;/* Transmit and receive buffers */&lt;BR /&gt;static uint8_t rxbuff[UART_RB_SIZE], txbuff[UART_RB_SIZE];&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;#define LPC_UART LPC_USART0&lt;BR /&gt;#define UARTx_IRQn USART0_IRQn&lt;BR /&gt;#define UARTx_IRQHandler UART0_IRQHandler&lt;BR /&gt;#define _GPDMA_CONN_UART_Tx GPDMA_CONN_UART0_Tx&lt;BR /&gt;#define _GPDMA_CONN_UART_Rx GPDMA_CONN_UART0_Rx&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/* Initialize Interrupt for UART */&lt;BR /&gt;void App_Interrupt_Init(void) {&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;BR /&gt; Chip_UART_IntEnable(LPC_UART, (UART_IER_RBRINT | UART_IER_RLSINT));&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;RingBuffer_Init(&amp;amp;rxring, rxbuff, 1, UART_RB_SIZE);&lt;BR /&gt; RingBuffer_Init(&amp;amp;txring, txbuff, 1, UART_RB_SIZE);&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;NVIC_SetPriority(UARTx_IRQn, 1);&lt;BR /&gt; /* Enable Interrupt for UART channel */&lt;BR /&gt; NVIC_EnableIRQ(UARTx_IRQn);&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;void UARTx_IRQHandler(void) {&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;BR /&gt; Chip_UART_IRQRBHandler(LPC_UART, &amp;amp;rxring, &amp;amp;txring);&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;void vUARTTask(void *pvParameters) {&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;BR /&gt; int tickCnt = 0;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;uint8_t uartTestString[] = "Ticking\n";&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;App_Interrupt_Init();&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;while (1) {&lt;/P&gt;&lt;P style="padding-left: 60px;"&gt;&lt;BR /&gt; Chip_UART_SendRB(LPC_UART, &amp;amp;txring, (uint8_t *) &amp;amp;uartTestString[0], sizeof(uartTestString));&lt;/P&gt;&lt;P style="padding-left: 60px;"&gt;vTaskDelay(configTICK_RATE_HZ);&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;}&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I will add the actual c file as well, see uart_driver.c&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Any help is greatly appreciated.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thank you in advance.&amp;nbsp;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 20 Mar 2018 15:54:33 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/FreeRTOS-USART-DMA-not-sending/m-p/718935#M29075</guid>
      <dc:creator>haakoneh</dc:creator>
      <dc:date>2018-03-20T15:54:33Z</dc:date>
    </item>
    <item>
      <title>Re: FreeRTOS USART DMA not sending</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/FreeRTOS-USART-DMA-not-sending/m-p/718936#M29076</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi&amp;nbsp;&lt;SPAN style="color: #646464; background-color: #ffffff;"&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;A _jive_internal="true" data-content-finding="Community" data-userid="315372" data-username="haakoneh" href="https://community.nxp.com/people/haakoneh" style="color: #5e89c1; background-color: #ffffff; border: 0px; font-weight: 600; text-decoration: none; font-size: 11.9994px;"&gt;Håkon Hanssen&lt;/A&gt;&lt;SPAN style="color: #646464; background-color: #ffffff;"&gt;&lt;SPAN&gt;&amp;nbsp;，&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;DIV style="font-size: 14px;"&gt;&lt;SPAN style="color: #3d3d3d;"&gt;Thank you for your interest in NXP Semiconductor products and&amp;nbsp;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV style="font-size: 14px;"&gt;&lt;SPAN style="color: #3d3d3d;"&gt;the opportunity to serve you.&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV style="font-size: 14px;"&gt;&lt;SPAN style="color: #3d3d3d;"&gt;I'd highly recommend you start a DMA demo prior to implement with FreeRTOS.&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV style="font-size: 14px;"&gt;&lt;SPAN style="color: #3d3d3d;"&gt;Yes, &lt;A _jive_internal="true" href="https://community.nxp.com/thread/419226"&gt;DMA channel assignment: no error code?&lt;/A&gt;&lt;/SPAN&gt;&amp;nbsp;may expose potential cause, but it need more testing to confirm.&lt;/DIV&gt;&lt;DIV style="font-size: 14px;"&gt;I've attached demo code which describes&amp;nbsp;how to use UART in DMA mode, please refer to it for details.&lt;/DIV&gt;&lt;DIV style="font-size: 14px;"&gt;&lt;DIV style="color: #51626f; background-color: #ffffff; border: 0px; font-size: 15px;"&gt;Have a great day,&lt;/DIV&gt;&lt;DIV style="color: #51626f; background-color: #ffffff; border: 0px; font-size: 15px;"&gt;TIC&lt;/DIV&gt;&lt;DIV style="color: #51626f; background-color: #ffffff; border: 0px; font-size: 15px;"&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV style="color: #51626f; background-color: #ffffff; border: 0px; font-size: 15px;"&gt;-----------------------------------------------------------------------------------------------------------------------&lt;/DIV&gt;&lt;DIV style="color: #51626f; background-color: #ffffff; border: 0px; font-size: 15px;"&gt;Note: If this post answers your question, please click the Correct Answer button. Thank you!&lt;/DIV&gt;&lt;DIV style="color: #51626f; background-color: #ffffff; border: 0px; font-size: 15px;"&gt;-----------------------------------------------------------------------------------------------------------------------&lt;/DIV&gt;&lt;/DIV&gt;&lt;DIV style="font-size: 14px;"&gt; &lt;/DIV&gt;&lt;DIV style="font-size: 14px;"&gt; &lt;/DIV&gt;&lt;P&gt;&lt;SPAN style="color: #646464; background-color: #ffffff;"&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 22 Mar 2018 03:31:07 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/FreeRTOS-USART-DMA-not-sending/m-p/718936#M29076</guid>
      <dc:creator>jeremyzhou</dc:creator>
      <dc:date>2018-03-22T03:31:07Z</dc:date>
    </item>
  </channel>
</rss>

