RS485切换到发送模式后要等待一段时间再发数据,否则数据发出的是错误的,这个问题如何解决

2019-07-20 22:37发布

本帖最后由 天山狐狸 于 2016-4-26 14:50 编辑

如题,按照原子的代码,用串口1操作485,发送一个字节时,如果485切换到发送模式不等待50us,发出去的数据变成了0XFF。等待50us后再发送数据,数据就正确了。


原子的例程中怎么没有等待可以发送呢,我的怎么就必须等待呢?

谢谢


附:我用stm32f407芯片,168M频率

[mw_shl_code=applescript,true]void USART_SendByte(uint8_t Data)
{
  Enable_485Tx;//使能485发送
  delay_us(50);

  USART1->DR = (Data & (uint16_t)0x01FF);
  while (!(USART1->SR & 0x0040));//等待发送完成
  Enable_485Rx;//默认到485接收
}[/mw_shl_code]
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。