|
Несколько байт в один присест принимать - надо циклический буфер типа
#define RXBUFLENGTH 128
unsigned char RxBuffer[RXBUFLENGTH];
unsigned char RxBufWritePoint = 0;
unsigned char RxBufReadPoint = 0;#pragma vector=USART_RXC_vect
__interrupt void USART_RXC_interrupt(void)
{
RxBuffer[RxBufWritePoint]=UDR;
if(RxBufWritePoint == RXBUFLENGTH-1) RxBufWritePoint=0;
else RxBufWritePoint++;
}
А чтобы знать, что будут еще байты, надо сообщения на пакеты резать, SLIP'ом, например.
E-mail: info@telesys.ru