<?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 UART Problem on K70F120. in Kinetis Microcontrollers</title>
    <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/UART-Problem-on-K70F120/m-p/631373#M38020</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P style="margin: 0cm 0cm 0pt; text-align: left; unicode-bidi: embed; direction: ltr;"&gt;&lt;SPAN style="color: #000000; font-family: Calibri; font-size: medium;"&gt;I have a strange problem with UART.&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt; text-align: left; unicode-bidi: embed; direction: ltr;"&gt;&lt;SPAN style="color: #000000; font-family: Calibri; font-size: medium;"&gt;First I configure it :&lt;/SPAN&gt;&lt;/P&gt;&lt;BLOCKQUOTE class="jive_macro_quote jive-quote jive_text_macro"&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;STRONG style="color: #7f0055; font-size: 10pt;"&gt;void&lt;/STRONG&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt; &lt;STRONG&gt;UART_Init&lt;/STRONG&gt; (&lt;/SPAN&gt;&lt;SPAN style="color: #005032; font-size: 10pt;"&gt;UART_MemMapPtr&lt;/SPAN&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt; uartch, &lt;/SPAN&gt;&lt;STRONG style="color: #7f0055; font-size: 10pt;"&gt;int&lt;/STRONG&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt; sysclk, &lt;/SPAN&gt;&lt;STRONG style="color: #7f0055; font-size: 10pt;"&gt;int&lt;/STRONG&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt; baud)&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt;{&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;STRONG style="color: #7f0055; font-size: 10pt;"&gt;register&lt;/STRONG&gt; &lt;SPAN style="color: #005032; font-size: 10pt;"&gt;uint16_t&lt;/SPAN&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt; sbr, brfa;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #005032; font-size: 10pt;"&gt;uint8_t&lt;/SPAN&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt; temp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;STRONG style="color: #7f0055; font-size: 10pt;"&gt;if&lt;/STRONG&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt; (uartch == UART2_BASE_PTR)&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp; {&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PORTE_PCR16 = PORT_PCR_MUX(0x3); &lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PORTE_PCR17 = PORT_PCR_MUX(0x3); &lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; SIM_SCGC4 |= SIM_SCGC4_UART2_MASK;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp; }&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #3f7f5f; font-size: 10pt;"&gt;/* Make sure that the transmitter and receiver are disabled while we&lt;/SPAN&gt;&lt;SPAN style="color: #3f7f5f; font-size: 10pt;"&gt; change settings.&lt;/SPAN&gt;&lt;SPAN style="color: #3f7f5f; font-size: 10pt;"&gt; */&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp; UART_C2_REG(uartch) &amp;amp;= ~(UART_C2_TE_MASK| UART_C2_RE_MASK );&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #3f7f5f; font-size: 10pt;"&gt;/* Configure the UART for 8-bit mode, no parity */&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp; UART_C1_REG(uartch) = 0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #3f7f5f; font-size: 10pt;"&gt;/* We need all default settings, so entire register is cleared */&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #3f7f5f; font-size: 10pt;"&gt;/* Calculate baud settings */&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp; sbr = (&lt;/SPAN&gt;&lt;SPAN style="color: #005032; font-size: 10pt;"&gt;uint16_t&lt;/SPAN&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt;)((sysclk*1000)/(baud * 16));&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #3f7f5f; font-size: 10pt;"&gt;/* Save off the current value of the UARTx_BDH except for the SBR field */&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp; temp = UART_BDH_REG(uartch) &amp;amp; ~(UART_BDH_SBR(0x1F));&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;SPAN style="font-size: 10pt;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp; UART_BDH_REG(uartch) = temp | UART_BDH_SBR(((sbr &amp;amp; 0x1F00) &amp;gt;&amp;gt; 8));&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp; UART_BDL_REG(uartch) = (&lt;/SPAN&gt;&lt;SPAN style="color: #005032; font-size: 10pt;"&gt;uint8_t&lt;/SPAN&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt;)(sbr &amp;amp; UART_BDL_SBR_MASK);&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;SPAN style="font-size: 10pt;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #3f7f5f; font-size: 10pt;"&gt;/* Determine if a fractional divider is needed to get closer to the baud rate */&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp; brfa = (((sysclk*32000)/(baud * 16)) - (sbr * 32));&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;SPAN style="font-size: 10pt;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #3f7f5f; font-size: 10pt;"&gt;/* Save off the current value of the UARTx_C4 register except for the BRFA field */&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp; temp = UART_C4_REG(uartch) &amp;amp; ~(UART_C4_BRFA(0x1F));&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;SPAN style="font-size: 10pt;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp; UART_C4_REG(uartch) = temp | UART_C4_BRFA(brfa);&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;SPAN style="font-size: 10pt;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #3f7f5f; font-size: 10pt;"&gt;/* Enable receiver and transmitter */&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; UART_C2_REG(uartch) |= (UART_C2_TE_MASK&amp;nbsp; | UART_C2_RE_MASK | UART_C2_RIE_MASK); &lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #3f7f5f; font-size: 10pt;"&gt;//errors&lt;/SPAN&gt;&lt;SPAN style="font-size: 10pt;"&gt; – &lt;SPAN style="color: #00b050;"&gt;FOR DEBUG ONLY&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;UART_C3_REG(uartch) |= UART_C3_PEIE_MASK | UART_C3_FEIE_MASK | UART_C3_NEIE_MASK |&amp;nbsp; UART_C3_ORIE_MASK;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;SPAN style="font-size: 10pt;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NVIC_EnableIRQ(&lt;/SPAN&gt;&lt;EM style="color: #0000c0; font-size: 10pt;"&gt;UART2_RX_TX_IRQn&lt;/EM&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt;); &lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;SPAN style="font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="color: #00b050;"&gt;//FOR DEBUG ONLY&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NVIC_EnableIRQ(&lt;/SPAN&gt;&lt;EM style="color: #0000c0; font-size: 10pt;"&gt;UART2_ERR_IRQn&lt;/EM&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt; ); &lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt;}&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;STRONG style="color: #7f0055; font-size: 10pt;"&gt;void&lt;/STRONG&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt; &lt;STRONG&gt;UART2_RX_TX_IRQHandler&lt;/STRONG&gt;(&lt;/SPAN&gt;&lt;STRONG style="color: #7f0055; font-size: 10pt;"&gt;void&lt;/STRONG&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt;)&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt;{&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;STRONG style="color: #7f0055; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp; if&lt;/STRONG&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt; ((UART_S1_REG(channel) &amp;amp; UART_S1_RDRF_MASK))&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp; {&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #005032; font-size: 10pt;"&gt;uint8_t&lt;/SPAN&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt; chr = UART2-&amp;gt;D;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; UART_SendByte(UART2, chr);&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp; }&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt;}&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;STRONG style="color: #7f0055; font-size: 10pt;"&gt;void&lt;/STRONG&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt; &lt;STRONG&gt;UART2_ERR_IRQHandler&lt;/STRONG&gt;(&lt;/SPAN&gt;&lt;STRONG style="color: #7f0055; font-size: 10pt;"&gt;void&lt;/STRONG&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt;)&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt;{&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #005032; font-size: 10pt;"&gt;uint32_t&lt;/SPAN&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt; st = UART2_BASE_PTR-&amp;gt;&lt;/SPAN&gt;&lt;SPAN style="color: #0000c0; font-size: 10pt;"&gt;S1&lt;/SPAN&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt;}&lt;/SPAN&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000; font-family: Times New Roman; font-size: medium;"&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt; text-align: left; unicode-bidi: embed; direction: ltr;"&gt;&lt;SPAN style="color: #000000; font-family: Calibri; font-size: medium;"&gt;And these functions to send a string.&lt;/SPAN&gt;&lt;/P&gt;&lt;BLOCKQUOTE class="jive_macro_quote jive-quote jive_text_macro"&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;STRONG style="color: #7f0055; font-size: 10pt;"&gt;void&lt;/STRONG&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt; &lt;STRONG&gt;UART_SendByte&lt;/STRONG&gt; (&lt;/SPAN&gt;&lt;SPAN style="color: #005032; font-size: 10pt;"&gt;UART_MemMapPtr&lt;/SPAN&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt; channel, &lt;/SPAN&gt;&lt;STRONG style="color: #7f0055; font-size: 10pt;"&gt;char&lt;/STRONG&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt; ch)&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt;{&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #3f7f5f; font-size: 10pt;"&gt;/* Wait until space is available in the FIFO */&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;STRONG style="color: #7f0055; font-size: 10pt;"&gt;while&lt;/STRONG&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt;(!(UART_S1_REG(channel) &amp;amp; UART_S1_TDRE_MASK));&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;SPAN style="font-size: 10pt;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #3f7f5f; font-size: 10pt;"&gt;/* Send the character */&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp; UART_D_REG(channel) = (&lt;/SPAN&gt;&lt;SPAN style="color: #005032; font-size: 10pt;"&gt;uint8_t&lt;/SPAN&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt;)ch;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt;}&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;STRONG style="color: #7f0055; font-size: 10pt;"&gt;void&lt;/STRONG&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt; &lt;STRONG&gt;UART_SendString&lt;/STRONG&gt;(&lt;/SPAN&gt;&lt;SPAN style="color: #005032; font-size: 10pt;"&gt;UART_MemMapPtr&lt;/SPAN&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt; uartChannel, &lt;/SPAN&gt;&lt;STRONG style="color: #7f0055; font-size: 10pt;"&gt;const&lt;/STRONG&gt; &lt;STRONG style="color: #7f0055; font-size: 10pt;"&gt;char&lt;/STRONG&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt; *p)&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt;{&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;STRONG style="color: #7f0055; font-size: 10pt;"&gt;while&lt;/STRONG&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt;(*p)&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp; {&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; UART_SendByte(uartChannel, *p++);&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp; }&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #3f7f5f; font-size: 10pt;"&gt;//time_delay_ms(100);&amp;nbsp; //dosen't help!!!&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt;}&lt;/SPAN&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000; font-family: Times New Roman; font-size: medium;"&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt; text-align: left; unicode-bidi: embed; direction: ltr;"&gt;&lt;SPAN style="color: #000000; font-family: Calibri; font-size: medium;"&gt;When I run it in main&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt; text-align: left; unicode-bidi: embed; direction: ltr;"&gt;&lt;SPAN style="color: #000000; font-family: Times New Roman; font-size: medium;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;BLOCKQUOTE class="jive_macro_quote jive-quote jive_text_macro"&gt;&lt;P style="margin: 0cm 0cm 0pt; text-align: left; unicode-bidi: embed; direction: ltr;"&gt;&lt;SPAN style="color: black; font-family: Consolas; font-size: 10pt;"&gt;UART_Init (UART2, 60000, 115200);&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt; text-align: left; unicode-bidi: embed; direction: ltr;"&gt;&lt;SPAN style="color: #000000; font-family: Calibri; font-size: medium;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt; text-align: left; unicode-bidi: embed; direction: ltr;"&gt;&lt;SPAN style="color: black; font-family: Consolas; font-size: 10pt;"&gt;UART_SendString(UART2, &lt;/SPAN&gt;&lt;SPAN style="color: #2a00ff; font-family: Consolas; font-size: 10pt;"&gt;"HELLO EVERYBODY\0"&lt;/SPAN&gt;&lt;SPAN style="color: black; font-family: Consolas; font-size: 10pt;"&gt;);&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt; text-align: left; unicode-bidi: embed; direction: ltr;"&gt;&lt;SPAN style="color: #000000; font-family: Calibri; font-size: medium;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt; text-align: left; unicode-bidi: embed; direction: ltr;"&gt;&lt;SPAN style="color: #000000; font-family: Calibri; font-size: medium;"&gt;While (1)&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt; text-align: left; unicode-bidi: embed; direction: ltr;"&gt;&lt;SPAN style="color: #000000; font-family: Calibri; font-size: medium;"&gt;{&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt; text-align: left; unicode-bidi: embed; direction: ltr;"&gt;&lt;SPAN style="color: #000000; font-family: Calibri; font-size: medium;"&gt;}&lt;/SPAN&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;SPAN style="font-size: 15px;"&gt;I get gibberish on the terminal. But if I set a breakpoint in &lt;SPAN style="color: black;"&gt;UART_SendByte(uartChannel, *p++);&lt;/SPAN&gt; and run it per char I get&amp;nbsp;the correct string on the terminal.&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;SPAN style="font-size: 15px;"&gt;Also when I type a char I get an error in &lt;SPAN style="color: black;"&gt;UART2_ERR_IRQHandler and &lt;/SPAN&gt;the error is - Framing Error but I get the correct echo on the terminal.&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 13 Oct 2016 09:06:16 GMT</pubDate>
    <dc:creator>john71</dc:creator>
    <dc:date>2016-10-13T09:06:16Z</dc:date>
    <item>
      <title>UART Problem on K70F120.</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/UART-Problem-on-K70F120/m-p/631373#M38020</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P style="margin: 0cm 0cm 0pt; text-align: left; unicode-bidi: embed; direction: ltr;"&gt;&lt;SPAN style="color: #000000; font-family: Calibri; font-size: medium;"&gt;I have a strange problem with UART.&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt; text-align: left; unicode-bidi: embed; direction: ltr;"&gt;&lt;SPAN style="color: #000000; font-family: Calibri; font-size: medium;"&gt;First I configure it :&lt;/SPAN&gt;&lt;/P&gt;&lt;BLOCKQUOTE class="jive_macro_quote jive-quote jive_text_macro"&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;STRONG style="color: #7f0055; font-size: 10pt;"&gt;void&lt;/STRONG&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt; &lt;STRONG&gt;UART_Init&lt;/STRONG&gt; (&lt;/SPAN&gt;&lt;SPAN style="color: #005032; font-size: 10pt;"&gt;UART_MemMapPtr&lt;/SPAN&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt; uartch, &lt;/SPAN&gt;&lt;STRONG style="color: #7f0055; font-size: 10pt;"&gt;int&lt;/STRONG&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt; sysclk, &lt;/SPAN&gt;&lt;STRONG style="color: #7f0055; font-size: 10pt;"&gt;int&lt;/STRONG&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt; baud)&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt;{&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;STRONG style="color: #7f0055; font-size: 10pt;"&gt;register&lt;/STRONG&gt; &lt;SPAN style="color: #005032; font-size: 10pt;"&gt;uint16_t&lt;/SPAN&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt; sbr, brfa;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #005032; font-size: 10pt;"&gt;uint8_t&lt;/SPAN&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt; temp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;STRONG style="color: #7f0055; font-size: 10pt;"&gt;if&lt;/STRONG&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt; (uartch == UART2_BASE_PTR)&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp; {&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PORTE_PCR16 = PORT_PCR_MUX(0x3); &lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PORTE_PCR17 = PORT_PCR_MUX(0x3); &lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; SIM_SCGC4 |= SIM_SCGC4_UART2_MASK;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp; }&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #3f7f5f; font-size: 10pt;"&gt;/* Make sure that the transmitter and receiver are disabled while we&lt;/SPAN&gt;&lt;SPAN style="color: #3f7f5f; font-size: 10pt;"&gt; change settings.&lt;/SPAN&gt;&lt;SPAN style="color: #3f7f5f; font-size: 10pt;"&gt; */&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp; UART_C2_REG(uartch) &amp;amp;= ~(UART_C2_TE_MASK| UART_C2_RE_MASK );&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #3f7f5f; font-size: 10pt;"&gt;/* Configure the UART for 8-bit mode, no parity */&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp; UART_C1_REG(uartch) = 0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #3f7f5f; font-size: 10pt;"&gt;/* We need all default settings, so entire register is cleared */&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #3f7f5f; font-size: 10pt;"&gt;/* Calculate baud settings */&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp; sbr = (&lt;/SPAN&gt;&lt;SPAN style="color: #005032; font-size: 10pt;"&gt;uint16_t&lt;/SPAN&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt;)((sysclk*1000)/(baud * 16));&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #3f7f5f; font-size: 10pt;"&gt;/* Save off the current value of the UARTx_BDH except for the SBR field */&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp; temp = UART_BDH_REG(uartch) &amp;amp; ~(UART_BDH_SBR(0x1F));&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;SPAN style="font-size: 10pt;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp; UART_BDH_REG(uartch) = temp | UART_BDH_SBR(((sbr &amp;amp; 0x1F00) &amp;gt;&amp;gt; 8));&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp; UART_BDL_REG(uartch) = (&lt;/SPAN&gt;&lt;SPAN style="color: #005032; font-size: 10pt;"&gt;uint8_t&lt;/SPAN&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt;)(sbr &amp;amp; UART_BDL_SBR_MASK);&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;SPAN style="font-size: 10pt;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #3f7f5f; font-size: 10pt;"&gt;/* Determine if a fractional divider is needed to get closer to the baud rate */&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp; brfa = (((sysclk*32000)/(baud * 16)) - (sbr * 32));&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;SPAN style="font-size: 10pt;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #3f7f5f; font-size: 10pt;"&gt;/* Save off the current value of the UARTx_C4 register except for the BRFA field */&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp; temp = UART_C4_REG(uartch) &amp;amp; ~(UART_C4_BRFA(0x1F));&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;SPAN style="font-size: 10pt;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp; UART_C4_REG(uartch) = temp | UART_C4_BRFA(brfa);&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;SPAN style="font-size: 10pt;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #3f7f5f; font-size: 10pt;"&gt;/* Enable receiver and transmitter */&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; UART_C2_REG(uartch) |= (UART_C2_TE_MASK&amp;nbsp; | UART_C2_RE_MASK | UART_C2_RIE_MASK); &lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #3f7f5f; font-size: 10pt;"&gt;//errors&lt;/SPAN&gt;&lt;SPAN style="font-size: 10pt;"&gt; – &lt;SPAN style="color: #00b050;"&gt;FOR DEBUG ONLY&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;UART_C3_REG(uartch) |= UART_C3_PEIE_MASK | UART_C3_FEIE_MASK | UART_C3_NEIE_MASK |&amp;nbsp; UART_C3_ORIE_MASK;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;SPAN style="font-size: 10pt;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NVIC_EnableIRQ(&lt;/SPAN&gt;&lt;EM style="color: #0000c0; font-size: 10pt;"&gt;UART2_RX_TX_IRQn&lt;/EM&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt;); &lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;SPAN style="font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="color: #00b050;"&gt;//FOR DEBUG ONLY&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NVIC_EnableIRQ(&lt;/SPAN&gt;&lt;EM style="color: #0000c0; font-size: 10pt;"&gt;UART2_ERR_IRQn&lt;/EM&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt; ); &lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt;}&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;STRONG style="color: #7f0055; font-size: 10pt;"&gt;void&lt;/STRONG&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt; &lt;STRONG&gt;UART2_RX_TX_IRQHandler&lt;/STRONG&gt;(&lt;/SPAN&gt;&lt;STRONG style="color: #7f0055; font-size: 10pt;"&gt;void&lt;/STRONG&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt;)&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt;{&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;STRONG style="color: #7f0055; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp; if&lt;/STRONG&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt; ((UART_S1_REG(channel) &amp;amp; UART_S1_RDRF_MASK))&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp; {&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #005032; font-size: 10pt;"&gt;uint8_t&lt;/SPAN&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt; chr = UART2-&amp;gt;D;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; UART_SendByte(UART2, chr);&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp; }&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt;}&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;STRONG style="color: #7f0055; font-size: 10pt;"&gt;void&lt;/STRONG&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt; &lt;STRONG&gt;UART2_ERR_IRQHandler&lt;/STRONG&gt;(&lt;/SPAN&gt;&lt;STRONG style="color: #7f0055; font-size: 10pt;"&gt;void&lt;/STRONG&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt;)&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt;{&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #005032; font-size: 10pt;"&gt;uint32_t&lt;/SPAN&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt; st = UART2_BASE_PTR-&amp;gt;&lt;/SPAN&gt;&lt;SPAN style="color: #0000c0; font-size: 10pt;"&gt;S1&lt;/SPAN&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt;}&lt;/SPAN&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000; font-family: Times New Roman; font-size: medium;"&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt; text-align: left; unicode-bidi: embed; direction: ltr;"&gt;&lt;SPAN style="color: #000000; font-family: Calibri; font-size: medium;"&gt;And these functions to send a string.&lt;/SPAN&gt;&lt;/P&gt;&lt;BLOCKQUOTE class="jive_macro_quote jive-quote jive_text_macro"&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;STRONG style="color: #7f0055; font-size: 10pt;"&gt;void&lt;/STRONG&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt; &lt;STRONG&gt;UART_SendByte&lt;/STRONG&gt; (&lt;/SPAN&gt;&lt;SPAN style="color: #005032; font-size: 10pt;"&gt;UART_MemMapPtr&lt;/SPAN&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt; channel, &lt;/SPAN&gt;&lt;STRONG style="color: #7f0055; font-size: 10pt;"&gt;char&lt;/STRONG&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt; ch)&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt;{&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #3f7f5f; font-size: 10pt;"&gt;/* Wait until space is available in the FIFO */&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;STRONG style="color: #7f0055; font-size: 10pt;"&gt;while&lt;/STRONG&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt;(!(UART_S1_REG(channel) &amp;amp; UART_S1_TDRE_MASK));&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;SPAN style="font-size: 10pt;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #3f7f5f; font-size: 10pt;"&gt;/* Send the character */&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp; UART_D_REG(channel) = (&lt;/SPAN&gt;&lt;SPAN style="color: #005032; font-size: 10pt;"&gt;uint8_t&lt;/SPAN&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt;)ch;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt;}&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;STRONG style="color: #7f0055; font-size: 10pt;"&gt;void&lt;/STRONG&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt; &lt;STRONG&gt;UART_SendString&lt;/STRONG&gt;(&lt;/SPAN&gt;&lt;SPAN style="color: #005032; font-size: 10pt;"&gt;UART_MemMapPtr&lt;/SPAN&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt; uartChannel, &lt;/SPAN&gt;&lt;STRONG style="color: #7f0055; font-size: 10pt;"&gt;const&lt;/STRONG&gt; &lt;STRONG style="color: #7f0055; font-size: 10pt;"&gt;char&lt;/STRONG&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt; *p)&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt;{&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;STRONG style="color: #7f0055; font-size: 10pt;"&gt;while&lt;/STRONG&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt;(*p)&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp; {&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; UART_SendByte(uartChannel, *p++);&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp; }&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #3f7f5f; font-size: 10pt;"&gt;//time_delay_ms(100);&amp;nbsp; //dosen't help!!!&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt;}&lt;/SPAN&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000; font-family: Times New Roman; font-size: medium;"&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt; text-align: left; unicode-bidi: embed; direction: ltr;"&gt;&lt;SPAN style="color: #000000; font-family: Calibri; font-size: medium;"&gt;When I run it in main&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt; text-align: left; unicode-bidi: embed; direction: ltr;"&gt;&lt;SPAN style="color: #000000; font-family: Times New Roman; font-size: medium;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;BLOCKQUOTE class="jive_macro_quote jive-quote jive_text_macro"&gt;&lt;P style="margin: 0cm 0cm 0pt; text-align: left; unicode-bidi: embed; direction: ltr;"&gt;&lt;SPAN style="color: black; font-family: Consolas; font-size: 10pt;"&gt;UART_Init (UART2, 60000, 115200);&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt; text-align: left; unicode-bidi: embed; direction: ltr;"&gt;&lt;SPAN style="color: #000000; font-family: Calibri; font-size: medium;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt; text-align: left; unicode-bidi: embed; direction: ltr;"&gt;&lt;SPAN style="color: black; font-family: Consolas; font-size: 10pt;"&gt;UART_SendString(UART2, &lt;/SPAN&gt;&lt;SPAN style="color: #2a00ff; font-family: Consolas; font-size: 10pt;"&gt;"HELLO EVERYBODY\0"&lt;/SPAN&gt;&lt;SPAN style="color: black; font-family: Consolas; font-size: 10pt;"&gt;);&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt; text-align: left; unicode-bidi: embed; direction: ltr;"&gt;&lt;SPAN style="color: #000000; font-family: Calibri; font-size: medium;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt; text-align: left; unicode-bidi: embed; direction: ltr;"&gt;&lt;SPAN style="color: #000000; font-family: Calibri; font-size: medium;"&gt;While (1)&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt; text-align: left; unicode-bidi: embed; direction: ltr;"&gt;&lt;SPAN style="color: #000000; font-family: Calibri; font-size: medium;"&gt;{&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt; text-align: left; unicode-bidi: embed; direction: ltr;"&gt;&lt;SPAN style="color: #000000; font-family: Calibri; font-size: medium;"&gt;}&lt;/SPAN&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;SPAN style="font-size: 15px;"&gt;I get gibberish on the terminal. But if I set a breakpoint in &lt;SPAN style="color: black;"&gt;UART_SendByte(uartChannel, *p++);&lt;/SPAN&gt; and run it per char I get&amp;nbsp;the correct string on the terminal.&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;SPAN style="font-size: 15px;"&gt;Also when I type a char I get an error in &lt;SPAN style="color: black;"&gt;UART2_ERR_IRQHandler and &lt;/SPAN&gt;the error is - Framing Error but I get the correct echo on the terminal.&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 13 Oct 2016 09:06:16 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/UART-Problem-on-K70F120/m-p/631373#M38020</guid>
      <dc:creator>john71</dc:creator>
      <dc:date>2016-10-13T09:06:16Z</dc:date>
    </item>
    <item>
      <title>Re: UART Problem on K70F120.</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/UART-Problem-on-K70F120/m-p/631374#M38021</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Well...when i set a delay&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;STRONG style="color: #7f0055; font-size: 10pt;"&gt;void&lt;/STRONG&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt; &lt;STRONG&gt;UART_SendString&lt;/STRONG&gt;(&lt;/SPAN&gt;&lt;SPAN style="color: #005032; font-size: 10pt;"&gt;UART_MemMapPtr&lt;/SPAN&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt; uartChannel, &lt;/SPAN&gt;&lt;STRONG style="color: #7f0055; font-size: 10pt;"&gt;const&lt;/STRONG&gt; &lt;STRONG style="color: #7f0055; font-size: 10pt;"&gt;char&lt;/STRONG&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt; *p)&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt;{&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;STRONG style="color: #7f0055; font-size: 10pt;"&gt;while&lt;/STRONG&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt;(*p)&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp; {&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; UART_SendByte(uartChannel, *p++);&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt;&lt;SPAN style="font-size: small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #3f7f5f; font-size: 10pt;"&gt;&lt;SPAN style="color: #000000;"&gt;time_delay_ms(1);&amp;nbsp;&lt;/SPAN&gt; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp; }&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt;}&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0cm 0cm 0pt;"&gt;&lt;SPAN style="color: black; font-size: 10pt;"&gt;It prints correctly on the terminal. It seems like frame error. What can cause the error?&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 13 Oct 2016 11:53:02 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/UART-Problem-on-K70F120/m-p/631374#M38021</guid>
      <dc:creator>john71</dc:creator>
      <dc:date>2016-10-13T11:53:02Z</dc:date>
    </item>
  </channel>
</rss>

