<?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 Sending values on UART (5282) in ColdFire/68K Microcontrollers and Processors</title>
    <link>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/Sending-values-on-UART-5282/m-p/174073#M6665</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt; &lt;/DIV&gt;&lt;DIV&gt;Hi,&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;I am trying to design a communication protocol between the 5282 and a PC.&lt;/DIV&gt;&lt;DIV&gt;&lt;BR /&gt;The 5282 sends characters from 0 to 0xFF and the PC is supposed to read them.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;The problem I am having is reading the zeros! All other values (from 1 to 0xFF) work fine.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;The code of the PC program is (in a while loop with timeouts):&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/DIV&gt;&lt;DIV class="msg_source_code"&gt;&lt;DIV class="text_smallest"&gt;Code:&lt;/DIV&gt;&lt;PRE&gt;unsigned char c;ReadFile(handle, &amp;amp;c, 1, &amp;amp;n_bytes_read, NULL);// read 1 character at a time&lt;/PRE&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;BR /&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;When the firmware sends a 0 integer, the ReadFile() function returns with n_bytes_read = 0.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;So there is no way finding out if ReadFile() didn't read any value OR it read a 0 integer (which is the NULL character in ASCII).&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;I know that this is not a 5282 problem but rather a kernel32 but I thought someone might have solved this&lt;/DIV&gt;&lt;DIV&gt;issue.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Thanks,&lt;/DIV&gt;&lt;DIV&gt;S.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 29 Oct 2020 09:22:53 GMT</pubDate>
    <dc:creator>SVC2</dc:creator>
    <dc:date>2020-10-29T09:22:53Z</dc:date>
    <item>
      <title>Sending values on UART (5282)</title>
      <link>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/Sending-values-on-UART-5282/m-p/174073#M6665</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt; &lt;/DIV&gt;&lt;DIV&gt;Hi,&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;I am trying to design a communication protocol between the 5282 and a PC.&lt;/DIV&gt;&lt;DIV&gt;&lt;BR /&gt;The 5282 sends characters from 0 to 0xFF and the PC is supposed to read them.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;The problem I am having is reading the zeros! All other values (from 1 to 0xFF) work fine.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;The code of the PC program is (in a while loop with timeouts):&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/DIV&gt;&lt;DIV class="msg_source_code"&gt;&lt;DIV class="text_smallest"&gt;Code:&lt;/DIV&gt;&lt;PRE&gt;unsigned char c;ReadFile(handle, &amp;amp;c, 1, &amp;amp;n_bytes_read, NULL);// read 1 character at a time&lt;/PRE&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;BR /&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;When the firmware sends a 0 integer, the ReadFile() function returns with n_bytes_read = 0.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;So there is no way finding out if ReadFile() didn't read any value OR it read a 0 integer (which is the NULL character in ASCII).&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;I know that this is not a 5282 problem but rather a kernel32 but I thought someone might have solved this&lt;/DIV&gt;&lt;DIV&gt;issue.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Thanks,&lt;/DIV&gt;&lt;DIV&gt;S.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 29 Oct 2020 09:22:53 GMT</pubDate>
      <guid>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/Sending-values-on-UART-5282/m-p/174073#M6665</guid>
      <dc:creator>SVC2</dc:creator>
      <dc:date>2020-10-29T09:22:53Z</dc:date>
    </item>
    <item>
      <title>Re: Sending values on UART (5282)</title>
      <link>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/Sending-values-on-UART-5282/m-p/174074#M6666</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;So you're saying that Windows detects the nul character (since it causes ReadFile() to return), but doesn't pass it back to you (n_bytes_read is 0)?&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;This is just a shot in the dark, but is it possible you have software flow control enabled, and maybe set your xon/xoff characters to the nul character?&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;From the MS docs:&lt;/DIV&gt;&lt;BLOCKQUOTE&gt;&lt;DIV&gt;One other interesting note about software flow control is that reception of XON and XOFF characters causes pending read operations to complete with zero bytes read. The XON and XOFF characters cannot be read by the application, since they are not placed in the input buffer.&lt;/DIV&gt;&lt;/BLOCKQUOTE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 19 Jul 2008 00:37:12 GMT</pubDate>
      <guid>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/Sending-values-on-UART-5282/m-p/174074#M6666</guid>
      <dc:creator>RichTestardi</dc:creator>
      <dc:date>2008-07-19T00:37:12Z</dc:date>
    </item>
    <item>
      <title>Re: Sending values on UART (5282)</title>
      <link>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/Sending-values-on-UART-5282/m-p/174075#M6667</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;Or maybe better yet:&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;BLOCKQUOTE&gt;&lt;DIV&gt;fNull: Specifies whether null bytes are discarded. If this member is TRUE, null bytes are discarded when received.&amp;nbsp;&lt;BR /&gt;&lt;/DIV&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;See: &lt;A href="http://msdn.microsoft.com/en-us/library/aa450503.aspx" rel="nofollow" target="_blank"&gt;http://msdn.microsoft.com/en-us/library/aa450503.aspx&lt;/A&gt;&amp;nbsp;(Configuring a Serial Port )&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 19 Jul 2008 00:42:05 GMT</pubDate>
      <guid>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/Sending-values-on-UART-5282/m-p/174075#M6667</guid>
      <dc:creator>RichTestardi</dc:creator>
      <dc:date>2008-07-19T00:42:05Z</dc:date>
    </item>
    <item>
      <title>Re: Sending values on UART (5282)</title>
      <link>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/Sending-values-on-UART-5282/m-p/174076#M6668</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;Hi,&lt;BR /&gt;My idea: search Freescale for "Freemaster" - and&amp;nbsp; your problem is solved.&lt;BR /&gt;Regards,&lt;BR /&gt;ipa&lt;BR /&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 21 Jul 2008 19:22:05 GMT</pubDate>
      <guid>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/Sending-values-on-UART-5282/m-p/174076#M6668</guid>
      <dc:creator>ipa</dc:creator>
      <dc:date>2008-07-21T19:22:05Z</dc:date>
    </item>
  </channel>
</rss>

