本帖最后由 天山狐狸 于 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]
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
我用的是自己画的板子,没有用原子的。。
如果是时序问题,为什么加延时后就好了呢
一周热门 更多>