金牌会员
 
- 积分
- 1403
- 金钱
- 1403
- 注册时间
- 2021-4-28
- 在线时间
- 525 小时
|
5金钱
/RS485发送len个字节.
//buf:发送区首地址
//len:发送的字节数(为了和本代码的接收匹配,这里建议不要超过64个字节)
void RS485_Send_Data(u8 *buf,u8 len)
{
u8 t;
RS485_TX_EN=1; //使能发送模式
for(t=0;t<len;t++)
{
while(USART_GetFlagStatus(USART2,USART_FLAG_TC) == RESET);
USART_SendData(USART2,buf[t]);
}
while(USART_GetFlagStatus(USART2,USART_FLAG_TC) == RESET);
RS485_RX_CNT=0; //数据发送完成 清零接收数据位数
RS485_TX_EN=0; //使能接收模式
}
以上是原子哥代码,不理解的是
while(USART_GetFlagStatus(USART2,USART_FLAG_TC) == RESET); //这都还没发送数据,发送完成标志一直为0,在这里不应该死循环了吗,进入不了下行发送程序了
USART_SendData(USART2,buf[t]);
|
|