Использую отладочный комплект AT91SAM7S-EK. Поставил среду IAR.
Настроил правильно USART на внешнее устройство. Подключил устройство
- вижу данные бегут, подпрограмма обработки прерывания вызывется правильно и многократно в регистре RHR тоже меняются битики приёмные но
в подпрограмме при этом когда считываю - получаю одно и тоже нелепое значение ...
Вот код
void Usart_c_irq_handler(void)
{
AT91PS_USART USART_pt = COM0;
unsigned int status;
char smbl;
AT91F_US_DisableIt(COM0,AT91C_US_RXBUFF );
while (!AT91F_US_RxReady(AT91C_BASE_US0));
smbl = (char )AT91F_US_GetChar(USART_pt);
AT91F_DBGU_Put((char)smbl);
Trace_Toggle_LED(LED4);
//* Reset the satus bit for error
USART_pt->US_CR = AT91C_US_RSTSTA ;
AT91F_US_EnableIt(COM0,AT91C_US_RXBUFF );
}