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
Danke! Mist ich muß mich erst dran gewöhnen für alles einen Takt einzustellen. Jetzt hängt er nicht mehr aber sendet (noch) nicht ... das kommt Gruss und Danke Sven
hallo sven, du solltest auch noch die PIO_ASR und PIO_BSR register init. am besten initialisiert du die port register mit der funktion AT91F_PIO_CfgPeriph(). gruss gerhard
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.