Оказалось что дело не в прерывании а в чём-то, непонятно в чём.
Следующий код работает:
Код
uint8_t sendArray[NUM_BYTES] = {0x55, 0xaa, 0xf0, 0xff, 0x00, 0x11};
/* Send sendArray. */
i = 0;
while (i < NUM_BYTES) {
if(USART_TXBuffer_PutByte(&USART_data,sendArray[i])) i++;
}
и на выходе имеем последовательно 6 байт.
а в принципе то же самое но вот так:
Код
uint8_t sendArray[NUM_BYTES] = {0x55, 0xaa, 0xf0, 0xff, 0x00, 0x11};
int putchar(int data)
{
if (!USART_TXBuffer_PutByte(&USART_data,data)) return EOF;
else return data;
}
/* Send sendArray. */
i = 0;
while (i < NUM_BYTES) {
if(putchar(sendArray[i])!=EOF) i++;
}
уже не работает. На выходе имеем первые 2 байта и всё.