Цитата(Mozart @ Aug 28 2007, 19:17)

всмысле читать регистры??
а очередность инициализации важна?
Попробуйте так:
Код
volatile AT91PS_PIO pPIO = AT91C_BASE_PIOA;
volatile AT91PS_USART pUS = AT91C_BASE_US1;
pUS->US_IDR = 0xffffffff;
pUS->US_CR = AT91C_US_RSTRX | AT91C_US_RSTTX | AT91C_US_RXDIS | AT91C_US_TXDIS;
AT91F_PMC_EnablePeriphClock(AT91C_BASE_PMC, 1UL << AT91C_ID_US1);
AT91F_PMC_EnablePeriphClock(AT91C_BASE_PMC, 1UL << AT91C_ID_PIOA);
pPIO->PIO_PDR = AT91C_PA21_RXD1 | AT91C_PA22_TXD1;
pPIO->PIO_ASR = AT91C_PA21_RXD1 | AT91C_PA22_TXD1;
pPIO->PIO_OER = AT91C_PA22_TXD1;
pPIO->PIO_ODR = AT91C_PA21_RXD1;
pPIO->PIO_PPUDR = AT91C_PA21_RXD1;
// настройка скорости передачи
baud_val = AT91C_MASTER_CLOCK/baud;
if ((baud_val&0x0f)>=8) baud_val += 16;
pUS->US_BRGR = (baud_val>>4);
pUS->US_MR = AT91C_US_ASYNC_MODE;
pUS->US_CR = AT91C_US_RXEN | AT91C_US_TXEN;