ARM7SAMS64 und zweiter USART will nicht?

OP #338663
Lesenswert?

Hallo *,

ich habe das der zweite USART des ARM nicht so will wie ich. Er ist
folgender massen initalisiert:

AT91S_USART * pUSART1 = AT91C_BASE_US1;

  *AT91C_PIOA_PDR = AT91C_PA21_RXD1 |        // Enable RxD0 Pin
                    AT91C_PA22_TXD1;         // Enalbe TxD0 Pin

  pUSART1->US_CR = AT91C_US_RSTRX |         // Reset Receiver
                  AT91C_US_RSTTX |          // Reset Transmitter
                  AT91C_US_RXDIS |          // Receiver Disable
                  AT91C_US_TXDIS;           // Transmitter Disable

  pUSART1->US_MR = AT91C_US_USMODE_NORMAL |  // Normal Mode
                   AT91C_US_CLKS_CLOCK    |  // Clock = MCK
                   AT91C_US_CHRL_8_BITS   |  // 8-bit Data
                   AT91C_US_PAR_NONE      |  // No Parity
                   AT91C_US_NBSTOP_1_BIT;    // 1 Stop Bit

  pUSART1->US_BRGR = BRD;                    // Baud Rate Divisor

  pUSART1->US_CR = AT91C_US_RXEN  |          // Receiver Enable
                   AT91C_US_TXEN;            // Transmitter Enable

Wenn ich nun ein zeichen Senden möchte dann hängt er bei:

  while (!(pUSART1->US_CSR & AT91C_US_TXRDY));
  return (pUSART1->US_THR = ch);

Es sieht so aus als ob der USART gar nicht senden will. Das Flag sagt
der Sende Buffer ist noch nicht leer.

Was zum teufel habe ich über sehen?

Gruss Sven

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren