STM32串口接收程序 为什么是这样的

第一次发的数据,丢失一位,第二次发送 数据是反的,例如;123456 接收到2314561 int main(void){ RCC_Configuration(); //系统时钟配置 GPIO_Configuration(); //配置GPIO// EXIT_Configuration(); //配置EXIT NVIC_Configuration(); //NVIC配置 USART1_Config(); while (1) { RX_dat=(USART_ReceiveData(USART1)); while(USART_GetFlagStatus(USART1, USART_FLAG_RXNE) == RESET) {} USART_SendData(USART1,RX_dat); //发送数据 } }

顺序写反了,应该先等待接收区非空,再接收,然后再发送,按照当前的代码,你发送的不一定是接收到的数据。
按照如下顺序修改:
while(...USART_FLAG_RXNE == RESET)
USART_ReceiveData()
USART_SendData()
温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答