Использую отладочный комплект 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 ); }
|