<?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: UART example on FRDM-KL05Z board for KDS in Kinetis Microcontrollers</title>
    <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/UART-example-on-FRDM-KL05Z-board-for-KDS/m-p/448301#M26522</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello ION,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;After i checked your code , i found one error here :&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PORTB-&amp;gt;PCR[1] = ( PORT_PCR_ISF_MASK | PORT_PCR_MUX(3) );&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PORTB-&amp;gt;PCR[2] = ( PORT_PCR_ISF_MASK | PORT_PCR_MUX(3) );&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Please change it to :&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PORTB-&amp;gt;PCR[1] = ( PORT_PCR_ISF_MASK | PORT_PCR_MUX(2) );&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PORTB-&amp;gt;PCR[2] = ( PORT_PCR_ISF_MASK | PORT_PCR_MUX(2) );&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;For from the SCH we can see the FRDM-KL05 use the PTB2 as UART0_RX, use the PTB1 as UART0_TX.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Hope it helps&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;Have a great day,&lt;BR /&gt;Alice&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;-----------------------------------------------------------------------------------------------------------------------&lt;BR /&gt;Note: If this post answers your question, please click the Correct Answer button. Thank you!&lt;BR /&gt;-----------------------------------------------------------------------------------------------------------------------&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 14 Oct 2015 04:02:48 GMT</pubDate>
    <dc:creator>Alice_Yang</dc:creator>
    <dc:date>2015-10-14T04:02:48Z</dc:date>
    <item>
      <title>UART example on FRDM-KL05Z board for KDS</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/UART-example-on-FRDM-KL05Z-board-for-KDS/m-p/448296#M26517</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Hello, my name is Alex and I am new in this community. I recently started a project using the FRDM-KL05Z board and I am interested in some examples on how to configure the UART protocol without Processor Expert. So far I found some init and read/write methods but they don't seem to work properly.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Below you can find the code for this methods : &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;void uart_init (UART_MemMapPtr uartch, int sysclk, int baud)&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; register uint16 sbr, brfa;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint8 temp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp; /* Enable the clock to the selected UART */&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(uartch == UART0_BASE_PTR)&lt;/P&gt;&lt;P&gt;&amp;nbsp; SIM_SCGC4 |= SIM_SCGC4_UART0_MASK;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; else&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (uartch == UART1_BASE_PTR)&lt;/P&gt;&lt;P&gt;&amp;nbsp; SIM_SCGC4 |= SIM_SCGC4_UART1_MASK;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; else&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (uartch == UART2_BASE_PTR)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SIM_SCGC4 |= SIM_SCGC4_UART2_MASK;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; else&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(uartch == UART3_BASE_PTR)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SIM_SCGC4 |= SIM_SCGC4_UART3_MASK;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; else&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(uartch == UART4_BASE_PTR)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SIM_SCGC1 |= SIM_SCGC1_UART4_MASK;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; else&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SIM_SCGC1 |= SIM_SCGC1_UART5_MASK;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Make sure that the transmitter and receiver are disabled while we &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * change settings.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; UART_C2_REG(uartch) &amp;amp;= ~(UART_C2_TE_MASK&lt;/P&gt;&lt;P&gt;&amp;nbsp; | UART_C2_RE_MASK );&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Configure the UART for 8-bit mode, no parity */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; UART_C1_REG(uartch) = 0; /* We need all default settings, so entire register is cleared */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Calculate baud settings */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; sbr = (uint16)((sysclk*1000)/(baud * 16));&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Save off the current value of the UARTx_BDH except for the SBR field */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; temp = UART_BDH_REG(uartch) &amp;amp; ~(UART_BDH_SBR(0x1F));&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; UART_BDH_REG(uartch) = temp |&amp;nbsp; UART_BDH_SBR(((sbr &amp;amp; 0x1F00) &amp;gt;&amp;gt; 8));&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; UART_BDL_REG(uartch) = (uint8)(sbr &amp;amp; UART_BDL_SBR_MASK);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Determine if a fractional divider is needed to get closer to the baud rate */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; brfa = (((sysclk*32000)/(baud * 16)) - (sbr * 32));&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Save off the current value of the UARTx_C4 register except for the BRFA field */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; temp = UART_C4_REG(uartch) &amp;amp; ~(UART_C4_BRFA(0x1F));&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; UART_C4_REG(uartch) = temp |&amp;nbsp; UART_C4_BRFA(brfa);&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Enable receiver and transmitter */&lt;/P&gt;&lt;P&gt;&amp;nbsp; UART_C2_REG(uartch) |= (UART_C2_TE_MASK&lt;/P&gt;&lt;P&gt;&amp;nbsp; | UART_C2_RE_MASK );&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;/********************************************************************/&lt;/P&gt;&lt;P&gt;/*&lt;/P&gt;&lt;P&gt; * Wait for a character to be received on the specified UART&lt;/P&gt;&lt;P&gt; *&lt;/P&gt;&lt;P&gt; * Parameters:&lt;/P&gt;&lt;P&gt; *&amp;nbsp; channel&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; UART channel to read from&lt;/P&gt;&lt;P&gt; *&lt;/P&gt;&lt;P&gt; * Return Values:&lt;/P&gt;&lt;P&gt; *&amp;nbsp; the received character&lt;/P&gt;&lt;P&gt; */&lt;/P&gt;&lt;P&gt;char uart_getchar (UART_MemMapPtr channel)&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Wait until character has been received */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; while (!(UART_S1_REG(channel) &amp;amp; UART_S1_RDRF_MASK));&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Return the 8-bit data from the receiver */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return UART_D_REG(channel);&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;/********************************************************************/&lt;/P&gt;&lt;P&gt;/*&lt;/P&gt;&lt;P&gt; * Wait for space in the UART Tx FIFO and then send a character&lt;/P&gt;&lt;P&gt; *&lt;/P&gt;&lt;P&gt; * Parameters:&lt;/P&gt;&lt;P&gt; *&amp;nbsp; channel&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; UART channel to send to&lt;/P&gt;&lt;P&gt; *&amp;nbsp; ch character to send&lt;/P&gt;&lt;P&gt; */ &lt;/P&gt;&lt;P&gt;void uart_putchar (UART_MemMapPtr channel, char ch)&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Wait until space is available in the FIFO */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; while(!(UART_S1_REG(channel) &amp;amp; UART_S1_TDRE_MASK));&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Send the character */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; UART_D_REG(channel) = (uint8)ch;&lt;/P&gt;&lt;P&gt; }&lt;/P&gt;&lt;P&gt;/********************************************************************/&lt;/P&gt;&lt;P&gt;/*&lt;/P&gt;&lt;P&gt; * Check to see if a character has been received&lt;/P&gt;&lt;P&gt; *&lt;/P&gt;&lt;P&gt; * Parameters:&lt;/P&gt;&lt;P&gt; *&amp;nbsp; channel&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; UART channel to check for a character&lt;/P&gt;&lt;P&gt; *&lt;/P&gt;&lt;P&gt; * Return values:&lt;/P&gt;&lt;P&gt; *&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; No character received&lt;/P&gt;&lt;P&gt; *&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Character has been received&lt;/P&gt;&lt;P&gt; */&lt;/P&gt;&lt;P&gt;int uart_getchar_present (UART_MemMapPtr channel)&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return (UART_S1_REG(channel) &amp;amp; UART_S1_RDRF_MASK);&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; I was just wondering if anyone used those routines or something similar or has an example on how to communicate with a terminal using the UART protocol on the FRDM-KL05Z board.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; This is my first time using a freescale microcontroller so I don't fully understand all it's aspects so any information will be greatly appreciated.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 09 Oct 2015 14:49:31 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/UART-example-on-FRDM-KL05Z-board-for-KDS/m-p/448296#M26517</guid>
      <dc:creator>ionchifu</dc:creator>
      <dc:date>2015-10-09T14:49:31Z</dc:date>
    </item>
    <item>
      <title>Re: UART example on FRDM-KL05Z board for KDS</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/UART-example-on-FRDM-KL05Z-board-for-KDS/m-p/448297#M26518</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Your code is for a K-type device and is not compatible with the KL parts.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Mark&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Kinetis: &lt;/SPAN&gt;&lt;A class="jive-link-external-small" href="http://www.utasker.com/kinetis.html" rel="nofollow"&gt;http://www.utasker.com/kinetis.html&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;KL05: &lt;/SPAN&gt;&lt;A class="jive-link-external-small" href="http://www.utasker.com/kinetis/FRDM-KL05Z.html" rel="nofollow"&gt;http://www.utasker.com/kinetis/FRDM-KL05Z.html&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;UARTs: &lt;/SPAN&gt;&lt;A class="jive-link-external-small" href="http://www.utasker.com/docs/uTasker/uTaskerUART.PDF" rel="nofollow"&gt;http://www.utasker.com/docs/uTasker/uTaskerUART.PDF&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;For the complete "out-of-the-box" Kinetis experience and faster time to market&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #7ed529;"&gt;:smileyinfo: Out-of-the-box support for 46 Kinetis boards and 10 IDEs (&lt;EM&gt;460 combinations from a single code source with no porting required&lt;/EM&gt;)&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 10 Oct 2015 16:58:30 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/UART-example-on-FRDM-KL05Z-board-for-KDS/m-p/448297#M26518</guid>
      <dc:creator>mjbcswitzerland</dc:creator>
      <dc:date>2015-10-10T16:58:30Z</dc:date>
    </item>
    <item>
      <title>Re: UART example on FRDM-KL05Z board for KDS</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/UART-example-on-FRDM-KL05Z-board-for-KDS/m-p/448298#M26519</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello ION,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;- There is FRDM-KL05 sample code package ,&amp;nbsp; it have UART driver, after you download it , you can find here :&lt;/P&gt;&lt;P&gt;KL05-SC\KL05-SC\klxx-sc-baremetal\src\drivers\uart&lt;/P&gt;&lt;P&gt;you can download it here :&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.freescale.com/products/arm-processors/kinetis-cortex-m/l-series/freescale-freedom-development-platform-for-the-kinetis-kl05-and-kl04-mcus:FRDM-KL05Z?fpsp=1&amp;amp;tab=Design_Tools_Tab" title="http://www.freescale.com/products/arm-processors/kinetis-cortex-m/l-series/freescale-freedom-development-platform-for-the-kinetis-kl05-and-kl04-mcus:FRDM-KL05Z?fpsp=1&amp;amp;tab=Design_Tools_Tab"&gt;Freedom Development Platform for Kinetis MCUs|Freescale&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="pastedImage_1.png"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/21957i86925565A641CBE1/image-size/large?v=v2&amp;amp;px=999" role="button" title="pastedImage_1.png" alt="pastedImage_1.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;-&amp;nbsp; And why you do not use Processor Expert , it is a good tool help you develop the project , there also is sample code about how to use it .&lt;/P&gt;&lt;P&gt;For example : add the component "Serial_LDD" , right click it , you can find "help on component" , then in the&amp;nbsp; "Typical Usage" you can find&lt;/P&gt;&lt;P&gt;how to configure it and the demo code :&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="pastedImage_0.png"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/22110iEC39656AFE7CE6B7/image-size/large?v=v2&amp;amp;px=999" role="button" title="pastedImage_0.png" alt="pastedImage_0.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Hope it helps&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;Have a great day,&lt;/P&gt;&lt;P&gt;Alice&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;-----------------------------------------------------------------------------------------------------------------------&lt;BR /&gt;Note: If this post answers your question, please click the Correct Answer button. Thank you!&lt;BR /&gt;-----------------------------------------------------------------------------------------------------------------------&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 12 Oct 2015 02:44:22 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/UART-example-on-FRDM-KL05Z-board-for-KDS/m-p/448298#M26519</guid>
      <dc:creator>Alice_Yang</dc:creator>
      <dc:date>2015-10-12T02:44:22Z</dc:date>
    </item>
    <item>
      <title>Re: UART example on FRDM-KL05Z board for KDS</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/UART-example-on-FRDM-KL05Z-board-for-KDS/m-p/448299#M26520</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Thanks for the reply Alice, i am not using Processor Expert because i want to do everything from the start as a baremetal project and because further in the project i want to optimize the power consumption so i want to write as little code as possible. Below there is a code i edited for my board but it won't work.. the data register just won't save the value that a send to the terminal. Did anyone else encounter this problem ? &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;#include "MKL05Z4.h"&lt;/P&gt;&lt;P&gt;#include "uart.h"&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;void uart0_init (UART0_MemMapPtr uartch, int sysclk, int baud)&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Enable the clock to the selected PORT */&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SIM_SCGC5 |= SIM_SCGC5_PORTB_MASK;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Set the pins multiplexer to UART RX/TX mode */&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PORTB-&amp;gt;PCR[1] = ( PORT_PCR_ISF_MASK | PORT_PCR_MUX(3) );&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PORTB-&amp;gt;PCR[2] = ( PORT_PCR_ISF_MASK | PORT_PCR_MUX(3) );&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Enable the clock to the selected UART */&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SIM-&amp;gt;SOPT2 = SIM_SOPT2_UART0SRC(1);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SIM-&amp;gt;SCGC4 |= SIM_SCGC4_UART0_MASK;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Make sure that the transmitter and receiver are disabled while we&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; * change settings.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; UART0_C2 = 0x00U;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Configure the UART for a 9600 baud rate */&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; UART0_BDL = UART0_BDL_SBR(0xC8);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; UART0_BDH = UART0_BDH_SBR(0x00);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; UART0_MA1 = UART0_MA1_MA(0x00);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; UART0_MA2 = UART0_MA2_MA(0x00);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; UART0_C4 = UART0_C4_OSR(0x18);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; UART0_C1 = 0x00U;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; UART0_S1 = 0xC0U;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; UART0_S2 = (UART0_S2_LBKDIF_MASK | UART0_S2_RXEDGIF_MASK);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (void) UART0_D;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; UART0_C5 = 0x00U;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; UART0_C3 = 0x00U;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Enable transmitter and receiver */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; UART0_C2 |= (UART0_C2_TE_MASK | UART0_C2_RE_MASK);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;/********************************************************************/&lt;/P&gt;&lt;P&gt;/*&lt;/P&gt;&lt;P&gt; * Wait for a character to be received on the specified uart&lt;/P&gt;&lt;P&gt; *&lt;/P&gt;&lt;P&gt; * Parameters:&lt;/P&gt;&lt;P&gt; *&amp;nbsp; channel&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; uart channel to read from&lt;/P&gt;&lt;P&gt; *&lt;/P&gt;&lt;P&gt; * Return Values:&lt;/P&gt;&lt;P&gt; *&amp;nbsp; the received character&lt;/P&gt;&lt;P&gt; */&lt;/P&gt;&lt;P&gt;char uart0_getchar (UART0_MemMapPtr channel)&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Wait until character has been received */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while (!(UART0_S1_REG(channel) &amp;amp; UART0_S1_RDRF_MASK));&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Return the 8-bit data from the receiver */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return UART0_D_REG(channel);&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;/********************************************************************/&lt;/P&gt;&lt;P&gt;/*&lt;/P&gt;&lt;P&gt; * Wait for space in the uart Tx FIFO and then send a character&lt;/P&gt;&lt;P&gt; *&lt;/P&gt;&lt;P&gt; * Parameters:&lt;/P&gt;&lt;P&gt; *&amp;nbsp; channel&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; uart channel to send to&lt;/P&gt;&lt;P&gt; *&amp;nbsp; ch character to send&lt;/P&gt;&lt;P&gt; */&lt;/P&gt;&lt;P&gt;void uart0_putchar (UART0_MemMapPtr channel, char *ch)&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp; int i = 0;&lt;/P&gt;&lt;P&gt;&amp;nbsp; while (*(ch + i) != '\0')&lt;/P&gt;&lt;P&gt;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Wait until space is available in the FIFO */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while(!(UART0_S1_REG(channel) &amp;amp; UART0_S1_TDRE_MASK));&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Send the character */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; UART0-&amp;gt;D = *(ch + i);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i++;&lt;/P&gt;&lt;P&gt;&amp;nbsp; }&lt;/P&gt;&lt;P&gt; }&lt;/P&gt;&lt;P&gt;/********************************************************************/&lt;/P&gt;&lt;P&gt;/*&lt;/P&gt;&lt;P&gt; * Check to see if a character has been received&lt;/P&gt;&lt;P&gt; *&lt;/P&gt;&lt;P&gt; * Parameters:&lt;/P&gt;&lt;P&gt; *&amp;nbsp; channel&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; uart channel to check for a character&lt;/P&gt;&lt;P&gt; *&lt;/P&gt;&lt;P&gt; * Return values:&lt;/P&gt;&lt;P&gt; *&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; No character received&lt;/P&gt;&lt;P&gt; *&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Character has been received&lt;/P&gt;&lt;P&gt; */&lt;/P&gt;&lt;P&gt;int uart0_getchar_present (UART0_MemMapPtr channel)&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return (UART0_S1_REG(channel) &amp;amp; UART0_S1_RDRF_MASK);&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;int main()&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp; int i = 0;&lt;/P&gt;&lt;P&gt;&amp;nbsp; char text[128] = "Hello world";&lt;/P&gt;&lt;P&gt;&amp;nbsp; uart0_init(UART0, 48000, 9600);&lt;/P&gt;&lt;P&gt;&amp;nbsp; while (1)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp; uart0_putchar(UART0, text );&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;////////////////////////////////////////////////////////////////////////////////&lt;/P&gt;&lt;P&gt;// EOF&lt;/P&gt;&lt;P&gt;////////////////////////////////////////////////////////////////////////////////&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 13 Oct 2015 06:23:25 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/UART-example-on-FRDM-KL05Z-board-for-KDS/m-p/448299#M26520</guid>
      <dc:creator>ionchifu</dc:creator>
      <dc:date>2015-10-13T06:23:25Z</dc:date>
    </item>
    <item>
      <title>Re: UART example on FRDM-KL05Z board for KDS</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/UART-example-on-FRDM-KL05Z-board-for-KDS/m-p/448300#M26521</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The amount of code will have no influence on the power consumption.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;See the following for a report on using UARTs in low power mode: &lt;A href="https://community.nxp.com/message/421247"&gt;Using Kinetis Low Power Stop Modes with unrestricted UART operation - a report&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In fact, using a blocking method as you have used to write a string will have higher current consumption than using an interrupt/DMA driven one that allows the processor to stop the core while waiting for each byte to be transmitted.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Mark&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Kinetis: &lt;/SPAN&gt;&lt;A class="jive-link-external-small" href="http://www.utasker.com/kinetis.html" rel="nofollow"&gt;http://www.utasker.com/kinetis.html&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;KL05: &lt;/SPAN&gt;&lt;A class="jive-link-external-small" href="http://www.utasker.com/kinetis/FRDM-KL05Z.html" rel="nofollow"&gt;http://www.utasker.com/kinetis/FRDM-KL05Z.html&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;UARTs: &lt;/SPAN&gt;&lt;A class="jive-link-external-small" href="http://www.utasker.com/docs/uTasker/uTaskerUART.PDF" rel="nofollow"&gt;http://www.utasker.com/docs/uTasker/uTaskerUART.PDF&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;For the complete "out-of-the-box" Kinetis experience and faster time to market&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #7ed529;"&gt;:smileyinfo: Out-of-the-box boot loader support for 46 Kinetis boards, 8 modes and 10 IDEs (&lt;EM&gt;over 15'000 combinations from a single code source with no porting required&lt;/EM&gt;)&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 13 Oct 2015 13:58:54 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/UART-example-on-FRDM-KL05Z-board-for-KDS/m-p/448300#M26521</guid>
      <dc:creator>mjbcswitzerland</dc:creator>
      <dc:date>2015-10-13T13:58:54Z</dc:date>
    </item>
    <item>
      <title>Re: UART example on FRDM-KL05Z board for KDS</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/UART-example-on-FRDM-KL05Z-board-for-KDS/m-p/448301#M26522</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello ION,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;After i checked your code , i found one error here :&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PORTB-&amp;gt;PCR[1] = ( PORT_PCR_ISF_MASK | PORT_PCR_MUX(3) );&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PORTB-&amp;gt;PCR[2] = ( PORT_PCR_ISF_MASK | PORT_PCR_MUX(3) );&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Please change it to :&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PORTB-&amp;gt;PCR[1] = ( PORT_PCR_ISF_MASK | PORT_PCR_MUX(2) );&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PORTB-&amp;gt;PCR[2] = ( PORT_PCR_ISF_MASK | PORT_PCR_MUX(2) );&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;For from the SCH we can see the FRDM-KL05 use the PTB2 as UART0_RX, use the PTB1 as UART0_TX.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Hope it helps&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;Have a great day,&lt;BR /&gt;Alice&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;-----------------------------------------------------------------------------------------------------------------------&lt;BR /&gt;Note: If this post answers your question, please click the Correct Answer button. Thank you!&lt;BR /&gt;-----------------------------------------------------------------------------------------------------------------------&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 14 Oct 2015 04:02:48 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/UART-example-on-FRDM-KL05Z-board-for-KDS/m-p/448301#M26522</guid>
      <dc:creator>Alice_Yang</dc:creator>
      <dc:date>2015-10-14T04:02:48Z</dc:date>
    </item>
  </channel>
</rss>

