<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>protocollo seriale Archives - Esperimenti con logiche programmabili</title>
	<atom:link href="https://logicaprogrammabile.it/tag/protocollo-seriale/feed/" rel="self" type="application/rss+xml" />
	<link>https://logicaprogrammabile.it/tag/protocollo-seriale/</link>
	<description>Tutorial in italiano per imparare a programmare usando Arduino, Raspberry PI, Netduino</description>
	<lastBuildDate>Mon, 01 Jul 2013 08:00:44 +0000</lastBuildDate>
	<language>it-IT</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.8.2</generator>

<image>
	<url>https://logicaprogrammabile.it/wp-content/uploads/2017/11/cropped-logicaprogrammabile-logo-02-32x32.png</url>
	<title>protocollo seriale Archives - Esperimenti con logiche programmabili</title>
	<link>https://logicaprogrammabile.it/tag/protocollo-seriale/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Flyport Ethernet comunicazione seriale UART</title>
		<link>https://logicaprogrammabile.it/flyport-ethernet-comunicazione-seriale-uart/</link>
					<comments>https://logicaprogrammabile.it/flyport-ethernet-comunicazione-seriale-uart/#respond</comments>
		
		<dc:creator><![CDATA[Marco Lai]]></dc:creator>
		<pubDate>Mon, 01 Jul 2013 08:00:44 +0000</pubDate>
				<category><![CDATA[OpenPicus]]></category>
		<category><![CDATA[Flyport]]></category>
		<category><![CDATA[protocollo seriale]]></category>
		<category><![CDATA[RS232]]></category>
		<category><![CDATA[Seriale]]></category>
		<guid isPermaLink="false">https://logicaprogrammabile.it/?p=3627</guid>

					<description><![CDATA[<p>Come interagire col modulo Flyport Ethernet utilizzando la porta UART Il moduli Flyport Ethernet, come Arduino e Netduino, hanno un piccolo software (bootloader) che permette di utilizzare una connessione seriale per caricare il firmware nella propria memoria. Il canale seriale viene anche usato per eseguire...</p>
<p>The post <a href="https://logicaprogrammabile.it/flyport-ethernet-comunicazione-seriale-uart/">Flyport Ethernet comunicazione seriale UART</a> appeared first on <a href="https://logicaprogrammabile.it">Esperimenti con logiche programmabili</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h3>Come interagire col modulo Flyport Ethernet utilizzando la porta UART</h3>
<p>Il moduli <strong>Flyport Ethernet</strong>, come <strong>Arduino</strong> e <strong>Netduino</strong>, hanno un piccolo software (bootloader) che permette di utilizzare una <strong>connessione seriale</strong> per caricare il firmware nella propria memoria. Il canale seriale viene anche usato per eseguire operazioni di debug, o comunque per scambiare dati col computer o altri dispositivi.<br />
Inviare dati dal <strong>Flyport</strong> al computer, è una operazione che personalmente trovo fondamentale per poter capire se il programma sta girando nel modo che mi aspetto.</p>
<p>La seriale utilizzata per caricare il firmware sul Flyport Ethernet è disponibile sul pin <strong>p13</strong> (UART RX input) e sul pin <strong>p15</strong> (UART TX output). Sono disponibili ulteriori 3 porte seriali impiegando i pin rimappabili. Per questo tutorial utilizzeremmo la porta seriale principale (pin p13 e p15), perché essendo collegata al <strong>miniUSB PROG</strong> permette, senza l&#8217;ausilio di circuiti aggiuntivi, di creare una connessione seriale col pc.</p>
<p>Alcune informazioni aggiuntive sulla comunicazione seriale potete trovarle in questo precedente articolo <a href="https://logicaprogrammabile.it/netduino-collegamento-seriale-rs232/">https://logicaprogrammabile.it/netduino-collegamento-seriale-rs232/</a>.</p>
<p>La prima istruzione che dobbiamo scrivere riguarda l&#8217;inizializzazione della porta da usare e la velocità di comunicazione</p>
<p><span id="more-3627"></span></p>
<p>[c]<br />
  //specifica il numero di porta e<br />
  //la velocità<br />
  UARTInit(1, 19200);<br />
[/c]</p>
<p>Dopo la configurazione, per poter inviare e ricevere dati dobbiamo attivare la porta con la seguente istruzione:</p>
<p>[c]<br />
  //attivo la porta seriale 1<br />
  UARTOn(1);<br />
[/c]</p>
<p>Inviamo una serie di caratteri singoli al pc, utilizzando un ciclo<strong> while()</strong> e l&#8217;istruzione <strong>UARTWriteCh()</strong></p>
<p>[c]<br />
#include &quot;taskFlyport.h&quot;</p>
<p>void FlyportTask()<br />
{<br />
  UARTInit(1, 19200);<br />
  UARTOn(1);</p>
<p>  while(1)<br />
  {<br />
    //invia il carattere A tramite<br />
    //la porta UART 1<br />
    UARTWriteCh(1, &#8216;A&#8217;);<br />
    //ritardo di 100ms<br />
    DelayMs(100);<br />
  }<br />
}<br />
[/c]</p>
<p>Compiliamo il sorgente e carichiamolo sul Flyport Ethernet. Dal tab <strong>View</strong> dell&#8217;<strong>Openpicus Flyport IDE</strong>, clicchiamo sul pulsante <strong>Serial Monitor</strong>.</p>
<p><a href="https://logicaprogrammabile.it/wp-content/uploads/2013/06/Serial232Button.png"><img decoding="async" class="aligncenter size-full wp-image-3684" alt="Serial Monitor" src="https://logicaprogrammabile.it/wp-content/uploads/2013/06/Serial232Button.png" width="170" height="160" /></a></p>
<p>Sul lato destro della finestra verrà visualizzato il pannello <strong>Serial Monitor</strong>. Selezioniamo la porta<strong> COM</strong>, dove è collegato il convertitore <strong>miniUSB PROG</strong> (nel mio caso la COM21), selezioniamo la velocità di comunicazione corretta, come quella specificata nell&#8217;istruzione <strong>UARTInit</strong> (nel mio caso 19200) e clicchiamo il pulsante <strong>Connect</strong> per avviare la ricezione dei caratteri inviati dal modulo<strong> Flyport Ethernet</strong>, per interrompere l&#8217;acquisizione utilizziamo il pulsante <strong>Close</strong>.</p>
<p><a href="https://logicaprogrammabile.it/wp-content/uploads/2013/06/SerialMonitor.png"><img fetchpriority="high" decoding="async" class="aligncenter size-full wp-image-3685" alt="Serial Monitor" src="https://logicaprogrammabile.it/wp-content/uploads/2013/06/SerialMonitor.png" width="395" height="210" srcset="https://logicaprogrammabile.it/wp-content/uploads/2013/06/SerialMonitor.png 395w, https://logicaprogrammabile.it/wp-content/uploads/2013/06/SerialMonitor-300x159.png 300w" sizes="(max-width: 395px) 100vw, 395px" /></a></p>
<p>I dati provenienti dal modulo verranno printati sul <strong>Serial Monitor</strong>.<br />
Abbiamo la possibilità di inviare una serie di caratteri (buffer) con una singola istruzione, utilizzando la funzione <strong>UARTWrite()</strong></p>
<p>[c]<br />
#include &quot;taskFlyport.h&quot;</p>
<p>void FlyportTask()<br />
{<br />
  UARTInit(1, 19200);<br />
  UARTOn(1);</p>
<p>  while(1)<br />
  {<br />
    //invia una serie di caratteri<br />
    //tramite la porta UART 1<br />
    UARTWrite(1, &quot;Flyport Ethernet&quot;);<br />
    //ritardo di 100ms<br />
    DelayMs(100);<br />
  }<br />
}<br />
[/c]</p>
<p>Nel codice precedente sul serial monitor visualizzeremo la frase &#8220;Flyport Ethernet&#8221;.<br />
Nel caso in cui volessimo spedire i dati in formato byte, dovremmo impiegare un buffer come descritto nel codice seguente:</p>
<p>[c]<br />
#include &quot;taskFlyport.h&quot;</p>
<p>void FlyportTask()<br />
{<br />
  UARTInit(1, 19200);<br />
  UARTOn(1);</p>
<p>  char buffer[6];</p>
<p>  //assegno dei valori in byte (0-254)<br />
  buffer[0] = 1;<br />
  buffer[1] = 65;<br />
  buffer[2] = 45;<br />
  buffer[3] = 2;<br />
  buffer[4] = 15;<br />
  buffer[5] = 14;</p>
<p>  while(1)<br />
  {<br />
    //invia l&#8217;intero buffer<br />
    UARTWrite(1, buffer);<br />
    //ritardo di 100ms<br />
    DelayMs(100);<br />
  }<br />
}<br />
[/c]</p>
<h4>Leggere i dati</h4>
<p>La ricezione dei dati è affidata all&#8217;istruzione <strong>UARTRead().</strong>  La ricezione avviene tramite la creazione di una area di memoria (buffer) la cui dimensione deve essere decisa in base alla quantità di dati da ricevere.</p>
<p>Nel seguente esempio, utilizzo sempre il <strong>Serial Monitor</strong> per inviare un byte al modulo.</p>
<p>[c]<br />
#include &quot;taskFlyport.h&quot;</p>
<p>void FlyportTask()<br />
{<br />
  UARTInit(1, 19200);<br />
  UARTOn(1);</p>
<p>  //creo un buffer da 1 byte per memorizzare<br />
  //i dati ricevuti dalla seriale<br />
  char buffer[1];<br />
  int numDataRX = 0;</p>
<p>  while(1)<br />
  {<br />
    //leggo dalla seriale 1 byte e lo memorizzo<br />
    //sul buffer precedentemente creato<br />
    numDataRX = UARTRead(1, buffer, 1);</p>
<p>    //se ho ricevuto dei dati invio<br />
    //una stringa di conferma al serial monitor<br />
    if(numDataRX &gt; 0)<br />
    {<br />
      UARTWrite(1, &quot;RX OK\n&quot;);<br />
    }</p>
<p>    DelayMs(10);<br />
  }<br />
}<br />
[/c]</p>
<p>Sono necessarie diverse prove per prende confidenza con l&#8217;utilizzo della seriale. Saperla adoperare è fondamentale per poter sviluppare tutti i tipi di progetti perché può essere usata per operazione di debugging utili a verificare la corretta esecuzione del codice.</p>
<p>The post <a href="https://logicaprogrammabile.it/flyport-ethernet-comunicazione-seriale-uart/">Flyport Ethernet comunicazione seriale UART</a> appeared first on <a href="https://logicaprogrammabile.it">Esperimenti con logiche programmabili</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://logicaprogrammabile.it/flyport-ethernet-comunicazione-seriale-uart/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
