STM32F0 485通讯最后一个字节发不出来

2019-10-15 23:44发布

程序如下:
loop:

USART1->TDR= DataTxd[Txcnt++]; 
while(!((USART1->ISR)&(1<<7))){;}
if(Txcnt<((DataTxd[1]&0x0f)))   
goto loop ;
else
{
Txcnt = 0;
TxReady = 1; //send frame finish flag
while (USART_GetFlagStatus(USART1,USART_FLAG_TXE) == RESET);  //send finish judge
//delay_ms(20);
RXD_ENABLE();    //SCIRDEN LOW,RXD ENABLE
}
问题是:最后一个字节总是发不出来,加入适当延时后正常,在网上查了部分资料,说是信号传输需要一段时间,查询标志位只能代表数据被发送,电平信号还没有发送完就被置为发送模式。但我用战舰板上的又正常,请教原子哥  ,这个问题怎么解决?我现在用的是延时。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。