串口发送数据总是少一个???

2019-10-15 01:28发布


原子老师:
                      您好!我现在把一组16进制数据通过下面的语句发送给PC机,通过串口调试软件(16进制显示)总是少一个数据?
这是怎么回事? 是不是下面的语句需要调整???
谢谢解答。


for(t=0;t<len;t++) { USART1->DR=USART_RX_BUF[t]; while((USART1->SR&0X40)==0);//等待发送结束 }



友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
3条回答
xiaoyan
1楼-- · 2019-10-15 05:49
少了什么数据,能举个例子么?
正点原子
2楼-- · 2019-10-15 08:47
回复【楼主位】bryanqin:
---------------------------------
改为:
for(t=0;t<len;t++)
{
while((USART1->SR&0X40)==0);//等待发送结束
USART1->DR=USART_RX_BUF[t];
}
试试
d1z1y2
3楼-- · 2019-10-15 14:30
是不是要先读SR,再写DR,的问题

一周热门 更多>