USART_SendData发送数据第一位显示不出来

2019-07-20 02:39发布

主函数里的for语句是这样的,输入123456,XCOM里显示的只有23456。

但是如果加上一句delay(把注释的//去掉),就可以完整输出123456了。

请问是为什么呢?

for(i=0;i<len;i++)
{
        USART_SendData(USART1 , USART_BUF[i]);

        //delay_ms(500);

        while( USART_GetFlagStatus(USART1 , USART_FLAG_TC) != SET );
}



友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
12条回答
米斯特R
1楼-- · 2019-07-20 23:30
正点原子 发表于 2019-4-10 01:43
多看参考手册,另外,看我们代码怎么写的

原子哥  这个for语句的代码就是和例程里的一样的  我只是改了变量的名字
米斯特R
2楼-- · 2019-07-21 03:02
触电丶 发表于 2019-4-10 08:21
改成
for(i=0;i

这样的话 是可以在第一次发送字符前检测标志位  但是发送后面字符的时间 就变成了发送完前一位代码后执行其他代码的时间+重新while语句的时间了吧  可以是可以  但是好像不太精确吧
正点原子
3楼-- · 2019-07-21 05:30
 精彩回答 2  元偷偷看……
米斯特R
4楼-- · 2019-07-21 09:27
正点原子 发表于 2019-4-11 01:26
我们例程就是掉了个个的

我是在 {MOD}里下载的    所以说 {MOD}里是旧的例程  随开发板的光盘里的才是最新的吗
米斯特R
5楼-- · 2019-07-21 11:15
正点原子 发表于 2019-4-11 01:26
我们例程就是掉了个个的

刚看了百度 {MOD}3月17更新了……我3月12下载的……
米斯特R
6楼-- · 2019-07-21 16:27
 精彩回答 2  元偷偷看……

一周热门 更多>