In UART RS485 transmission the last byte always missing in HTERM (STM8S003F3)
Hi all, I am using currently STM8S003F3 for my work and I want to send an array of bytes to the HTERM on my PC using UART RS485. But I always miss the last byte in the array (I can't see the last byte in HTERM). Here is a shot code snippet:
_UART_TX_ON; //switch to UART485 transmission mode
for ( bn=0; bn<17; bn++) { UART1->DR = bSPIRxBuf[bn]; //UART1_SendData8(bSPIRxBuf[bn]); while ( (UART1->SR & 0x80) == 0x00); //while (UART1_GetFlagStatus(UART1_FLAG_TXE) == RESET); } _UART_RX_ON; //switch to UART485 reception modeThe array bSPIRxBuf[0-16] has already some predefined content. But in Hterm I can only observe 16 bytes, which means the last byte is always not received by HTERM. I don't know why and could not explain. I think that I have waited enough time for each transmit byte before switching to reception mode using the while function. Anyone has some ideas? Many thanks!
Regards,
Bo
#stm8s003f3