Ниже приведен кусок кода. Код работает. Как я понимаю условие перестанет выполняться, если очередной байт будет равен нулю. Так? Ну из этого проистекает другой вопрос, а с чего это байт, следующий за последним байтом в массиве, будет 0? Как это работает, чего я не понимаю?
Код
unsigned char HELLO[]="Hello, I'm STM8S105C6, but who are you?";
unsigned char *byteNum = HELLO; // Указатель на передаваемый байт.
void UART2_TXE(void) interrupt 20
{
if (*byteNum)
{
UART2_DR=*byteNum; // Отправить байт.
byteNum++;
}
else UART2_CR2 &= ~(1<<7); // Запретить прерывания по TXE, всё передано.
}
Живи днем так, чтобы ночью ты спал спокойно.