本帖最后由 天山狐狸 于 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]
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
如果需要发数据,则
1、将数据方向转为发送,等待50us
2、发送全部需要发送的数据
3、将数据方向切为接收
一周热门 更多>