Hallo zusammen, hat jemand evtl. ein funktionierendes Codebeispiel für mich, wie ich zwischen PC und Xplained-Board via der eingebauten USART-USB Bridge kommunizieren kann. Bitte keine extra Mühe geben, zur Not finde ichs alleine raus, also nur wenns jemand einfach so rumliegen hat. Möchte gerade eine Verbindung zwischen RFM12-Boards testen, und hätte gerne eine bequeme Lösung die einfach geht, um nicht hier wieder ursachen für fehler zu haben. Besten Dank.
Die benötigte Baudrate ist 57600. Dieses Beispiel benutzt ASF und AVR Studio 5:
1 | #include "usart.h" |
2 | #define USART USARTC0
|
3 | #define USART_SERIAL_EXAMPLE &USARTC0
|
4 | #define USART_SERIAL_EXAMPLE_BAUDRATE 57600
|
5 | #define USART_SERIAL_CHAR_LENGTH USART_CHSIZE_8BIT_gc
|
6 | #define USART_SERIAL_PARITY USART_PMODE_DISABLED_gc
|
7 | #define USART_SERIAL_STOP_BIT false
|
8 | // USART options.
|
9 | |
10 | static usart_rs232_options_t USART_SERIAL_OPTIONS = { |
11 | .baudrate = USART_SERIAL_EXAMPLE_BAUDRATE, |
12 | .charlength = USART_SERIAL_CHAR_LENGTH, |
13 | .paritytype = USART_SERIAL_PARITY, |
14 | .stopbits = USART_SERIAL_STOP_BIT |
15 | };
|
16 | |
17 | // serial output
|
18 | static void uart_put(char c) { |
19 | while( (USART.STATUS & USART_DREIF_bm) == 0 ) {} |
20 | // Now transmit the character
|
21 | USART.DATA = c; |
22 | }
|
23 | //serial output
|
24 | char conin(void) { |
25 | while((USART.STATUS & USART_RXCIF_bm) == 0 ){}; |
26 | return USART.DATA; |
27 | }
|
28 | int main (void) |
29 | {
|
30 | sysclk_enable_peripheral_clock(&USARTC0); |
31 | sysclk_enable_module(SYSCLK_PORT_C, PR_USART0_bm); |
32 | // ASF takes care of configuing the port pins
|
33 | usart_init_rs232(USART_SERIAL_EXAMPLE, &USART_SERIAL_OPTIONS); |
34 | // more in main.......
|
35 | }
|
Besten Dank! Ich seh jetzt zumindest schon mal Ausgaben am virtuellen COM-Port am PC, wenn auch noch nicht ganz die erhoften... 57k 8N1 HW ist korrekt?
Uli schrieb: > 57k 8N1 HW ist korrekt? Werte stimmen, aber Hardware Handshake gibts nicht.Ist ja USB auf der PC Seite.
Ja, aber ist ja der virtuelle COM-Port 7 bei mir der über USB eingebunden ist... Also einfach Handshake auf Aus?
Ja.Der Kommentar zum 2ten Unterprogramm 'conin' soll natürlich heissen 'serial input', statt 'serial output'
Okay, danke nochmal, jetzt läuft alles... Hatte noch nen kleinen Fehler in meinem Code.. Und vielen lieben Dank für das stoßen auf die ASF. War mir bisher nicht geläufig!
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.