Hallo Zusammen,
ich benutzte folgenden Code zum Initialisieren und Senden der USART
Schnittstelle:
1 | void USART_Init(void)
|
2 | {
|
3 | PORTD.OUTSET |= PIN3_bm; // Für den Transmitter
|
4 | PORTD.DIRSET |= PIN3_bm; // "
|
5 | PORTD.DIRCLR |= PIN2_bm; // Für den Reciver
|
6 | //keine Clockconfig--> int. 2MHz Takt nutzen --> BSEL = 12 für 9600baud
|
7 | USARTD0.BAUDCTRLA = 12;
|
8 | // 8bit UART, no parity, 1 stopbit
|
9 | USARTD0.CTRLC |= USART_CMODE_ASYNCHRONOUS_gc|USART_CHSIZE_8BIT_gc;
|
10 | // Receiver einschalten
|
11 | USARTD0.CTRLB |= USART_RXEN_bm;
|
12 | }
|
13 |
|
14 | void usart_transmit(uint8_t temp)
|
15 | {
|
16 | USARTD0.DATA = temp;
|
17 | while (!(USARTD0.STATUS & USART_TXCIF_bm));
|
18 | }
|
Leite RX und TX über einen RS232 Spannungwandler auf meine Serielle
Schnittstelle vom PC. Benutze unter Linux HTERM. Aber es tut sich
nichts.