架构师_程序员_码农网

B Passwort abrufen
Registrieren

QQ登录

Nur ein Schritt zum Start

Suche
Ansicht:5250|Antwort: 0
打印 上一主题 下一主题

[转]Zigbee之旅(五):几个重要的CC2430基础实验--Serielle Anschlusskommunikation

[Link kopieren]
D 跳转到指定楼层
dem Eigentümer des Gebäudes
发表于 2014-10-30 23:18:18|只看该作者回帖奖励 | UmgekehrtesBlättern|Lesemodus
I. Die Lücke schließen

  In einem drahtlosen Sensornetzwerk muss der CC2430 die gesammelten Daten zur Verarbeitung an den Host-Computer (d.h. PC) senden, und gleichzeitig muss der Host-Computer Steuerinformationen an den CC2430 senden. All dies ist untrennbar mit der Informationsübertragung zwischen den beiden verbunden. In diesem Abschnitt erfahren Sie, wie Sie die serielle Kommunikation zwischen PC und CC2430 realisieren können.

  Der CC2430 verfügt über zwei serielle Kommunikationsschnittstellen USART0 und USART1. Jede serielle Schnittstelle verfügt über zwei Modi: UART (asynchroner) Modus und SPI (synchroner) Modus.)

Zweitens, die serielle Schnittstelle Kommunikation Experiment(1) Einführung in das Experiment

  Erreichen der Kommunikation zwischen Entwicklungsboard und PC: Der PC sendet eine bestimmte Zeichenkette an den CC2430, und der CC2430 sendet diese Zeichenkette nach dem Empfang an den PC zurück.

(2) Vorbereitung des Experiments

  Bevor Sie mit dem Schreiben des Codes beginnen, müssen Sie die Hardware einrichten: die richtige Verbindung und die Installation des USB-Seriell-Treibers.

  Die Hardware-Verbindung benötigt zwei:

     JTAG-Anschluss des CC2430-Entwicklungsboards → Debugger → USB-Anschluss des PCs (zum Debuggen und Herunterladen des Programms)

     Serieller Anschluss des CC2430-Entwicklungsboards → USB-Anschluss des PCs (für die Datenkommunikation zwischen PC und CC2430)

  Dann müssen Sie den USB-Treiber für die serielle Schnittstelle installieren ( Download-Adresse )

  Um Daten an die serielle Schnittstelle zu senden, wird auch ein Debugging-Tool für die serielle Schnittstelle benötigt ( Download-Adresse ).

(3) Programmablaufplan







(
4) Experiment Quellcode und Analyse/* Experimentbeschreibung: UART0,Baudrate 115200bps, PC sendet einen String an CC2430 (endet mit @-Zeichen), CC2430 empfängt und gibt den String zurück*/#include unsigned char recv_buf[ 300 ] = {0};







u nsigned char recv_count = 0;/* Initialisierung der Systemuhr-------------------------------------------------------*/void xtal_init( void ) { SLEEP &
amp;= ~0x04; // beide schalten einwhile (!
(SLEEP & 0x40 )); //Kristalloszillator eingeschaltet und stabil CLKCON &=~0x47; &





nbsp; //32MHz-Quarzoszillator auswählen SLEEP |=0x04; }/*UART0-Kommunikationsinitialisierung-------------------------------------------------------*/void Uart0Init(

u nsigned char StopBits, unsigned char Parity) { PERCFG&=~0x01; &nbsp
; //Wählen Sie UART0 als optionale Position eins, d.h. RXD an P0.2, TXD an P0.3 P0SEL |=0x0C; &nbsp

nbsp; //Initialisieren Sie den UART0-Port, setzen Sie P0.2 und P0.3 als externen Geräte-IO-Port U0CSR =0xC0;   //Setzen Sie den UART0-Port.


nbsp; //Set UART mode and enable receiver U0GCR = 11; U0BAUD = 216; & nbsp;//Set UART0 port, set P0.2 and P0.3 as external device IO port.

nbsp; //Set UART0 Baudrate zu 115200bps, warum ist 216 und 11, können Sie auf die CC2430 Chinese Handbuch &nbsp beziehen



; U0UCR |= StopBits|Parity; //Set StopBits und Parity }/*UART0 sendet Daten----------------------------------------



- --------------*/void Uart0Send( unsigned char data) {while ( U0CSR&0x01 ); //Warten, dass UART im Leerlauf ist, während Daten gesendet werden &






nbsp;U0DBUF = data; }/*UART0SendString-------------------------------------------------------*/void Uart0SendString( unsigned char *s) { & nbsp;while (*s !




= 0 ) //Senden Sie jedes Zeichen in der Zeichenkette s der Reihe nach Uart0Send(*s++); }/*UART0 nimmt Daten entgegen-----------------------------------



- -------------------*/unsigned char Uart0Receive( void ) {unsigned char data;while (!

( U0CSR&0x04 )); //abfragen, ob Daten empfangen wurden, sonst weiter warten data=U0DBUF;//empfangene Daten extrahierenreturn data;&






nbsp; }/* Hauptfunktion-------------------------------------------------------*/void main( void ) {




u nsigned char i,b; xtal_init(); Uart0Init(0x00, 0x00 ); //initialisiere UART0, setze 1 Stopbit, keine Parität & nbsp;Uart0SendString("Bitte geben Sie einen String ein, der mit '@' endet!





& quot;); recv_count =0;while( 1 ) {while ( 1 ) &

nbsp; { b = Uart0Receive()
;UARTif (b== '@' ) break; //Wenn '@' empfangen wird, aus der Schleife springen


S chleife, Zeichenkette ausgeben recv_buf[recv_count] = b;//Wenn nicht '@', weiterhin Zeichen zum Zeichenarray hinzufügen recv_buf[] &

nbsp; recv_count++; }for ( i=0; i<recv_count; i++)="" [color="rgb(0," 136,=&


q uot;" 0)] ="" output string[="" i][="" color] Uart0Send(recv_buf);
Uart0SendString ( ""); recv_count=0; &


n bsp; //reset } }

Konfigurieren Sie

zunächst den I/O-Port, der USART0 entspricht: Setzen Sie UART0 auf die optionale Position 1, indem Sie PECFRG.0 auf Null setzen, d.h. RXD entspricht P0.2 und TXD entspricht P0.3. Konfigurieren Sie dann P0.2 und P0.3 als externe Geräte-I/Os.

Wählen Sie dann den UART-Modus und aktivieren Sie den Empfänger.

Dann konfigurieren Sie die Parameter von USART0: Baudrate 115200, keine Parität, Stoppbit 1.

Dann senden Sie einen String an den PC: Please Input string ended with '@'! und versucht dann mit while(1), jedes empfangene Zeichen zu erhalten.

Wenn dieses Zeichen nicht '@' ist, bedeutet das, dass die Eingabe noch nicht beendet ist, und es wird fortgesetzt, dieses Zeichen zum Zeichenarray recv_buf hinzuzufügen; wenn dieses Zeichen genau '@' ist, bedeutet das, dass die Eingabe beendet ist, und deshalb wird aus der Schleife herausgesprungen, um jedes Zeichen im recv_buf der Reihe nach an den PC zu senden, und gleichzeitig wird der recv_count zurückgesetzt.

(5) Experimentelle Ergebnisse

Zunächst wird die Hardwareverbindung hergestellt und die serielle Schnittstelle geöffnet

.

2011022316522615.jpg
D

ebugging-Tool, konfigurieren Sie die Parameter wie folgt:

Klicken Sie auf "Open Serial Port", dann starten Sie IAR Debugging, lassen Sie das Programm laufen

, werden Sie feststellen, dass

die

serielle Schnittstelle

Debugger laufen

wird.

2011022316560420.jpg
S

ie werden sehen, dass die erwartete Zeichenkette im Empfangsfeld des seriellen Debugging-Tools erscheint:

Dann geben Sie in das Sende-Textfeld am unteren Rand des seriellen Debugging-Tools "

2011022316581688.jpg
H

allo" wie folgt ein:

Nachdem Sie auf "Senden" geklickt haben, fragen Sie sich vielleicht, warum der

CC2430 Ihre Nachricht nicht zurückgibt

. Nachdem Sie auf "Senden" geklickt haben, wundern Sie sich vielleicht, warum der CC2430 Ihre Nachricht nicht zurückgibt, weil Sie die Nachricht nicht mit @ abgeschlossen haben.

  

Geben Sie erneut "Zigbee!@" ein und klicken Sie auf "Senden". Das Ergebnis sieht wie folgt aus:

2011022317013210.jpg
g

Nur der erwartete Inhalt "Hallo Zigbee!" jetzt!

Zum Ende dieses Experiments ~

III. Fazit

Dieser Artikel stellt das CC2430-Entwicklungsboard und die Kommunikation mit dem Host-Computer vor. Mit der Grundlage der seriellen Kommunikation, der nächste Abschnitt kommen wir zusammen, um ADC (Analog-Digital-Wandlung) Single-Sampling zu lernen. Mit ADC können wir den Wert des Temperatursensors auf dem Entwicklungsboard erfassen und den Temperaturwert über die serielle Schnittstelle an den PC senden, um ihn anzuzeigen.






Previous :[Repeat] Zigbee-Reise (4): ein paar wichtige CC2430-Grundversuche - Timer-Interrupt
Next :[Re-]Zigbee Journey (VI): Ein paar wichtige CC2430 Grundexperimente - ADC single sampling
Code Farmer Netzwerk, nur im Zuge der Praxis veröffentlicht, stieß auf technische Schwierigkeiten, nicht in die Irre führen andere.
Sie müssen sich anmelden, bevor Sie zurückschreiben können Anmelden | Registrieren

D iese Version der integralen Regeln


HAFTUNGSAUSSCHLUSS: Alle Software, Programmiermaterialien oder Artikel, die von Code Farmer veröffentlicht werden, dürfen nur zu Lern- und Forschungszwecken verwendet werden; die oben genannten Inhalte dürfen nicht zu kommerziellen oder illegalen Zwecken verwendet werden, andernfalls müssen alle Konsequenzen von den Benutzern selbst getragen werden. Diese Seite informiert aus dem Netz, Urheberrechtsstreitigkeiten haben nichts mit dieser Seite zu tun. Sie müssen die oben genannten Inhalte innerhalb von 24 Stunden nach dem Herunterladen vollständig von Ihrem Computer entfernen. Wenn Ihnen das Programm gefällt, unterstützen Sie bitte die echte Software, kaufen Sie die Registrierung und erhalten Sie einen besseren echten Service. Wenn es irgendeine Verletzung gibt, kontaktieren Sie uns bitte per E-Mail, um damit umzugehen.

E-Mail To:help@itsvse.com

QQ| ( 鲁ICP备14021824号-2)|Sitemap

GMT+8, 2024-9-17 14:51

SchnellantwortZurück zum AnfangZurück zur Liste