初级会员

- 积分
- 183
- 金钱
- 183
- 注册时间
- 2019-4-30
- 在线时间
- 57 小时
|
1金钱
用USART3 查询发送数据到DTU ,然后中断接收DTU数据,运行几个小时后了,出现发送一直等待,死循环在while了(黄色的部分)。
void USART3_Send(u8 *sendbuf,u16 len)
{
u16 i;
for(i = 0;i<len;i++)
{
USART_SendData(USART3, sendbuf); //向串口3发送数据
while(USART_GetFlagStatus(USART3,USART_FLAG_TC)!=SET); //等待发送结束
}
}
file:///C:/Users/zhaoliyong/AppData/Local/YNote/data/bjjtzly@126.com/1be9d9805d90457596961b16935e44aa/clipboard.png
file:///C:/Users/zhaoliyong/AppData/Local/YNote/data/bjjtzly@126.com/1be9d9805d90457596961b16935e44aa/clipboard.png
file:///C:/Users/zhaoliyong/AppData/Local/YNote/data/bjjtzly@126.com/1be9d9805d90457596961b16935e44aa/clipboard.png
|
最佳答案
查看完整内容[请看2#楼]
改为这样吧
while(USART_GetFlagStatus(USART3,USART_FLAG_TXE)!=SET);
USART_SendData(USART3, sendbuf); //向串口3发送数据
|