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
Hast du im PMC den Takt für das USART1 eingeschalten?
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
Gast
#338666
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
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.