stm32编程-有没无while(1)的影响

2019-10-16 01:43发布

int main(void)
{
        u8 time,data;
        RCC_Configuration();
        GPIO_Configuration();
        USART_Configuration ();
        data='A';
        for(time=0;time<20;time++){
        while(USART_GetFlagStatus( USART1,  USART_FLAG_TC)==RESET);
        USART_SendData(USART1,data);
        data++;
while(1);
}
为什么我在加上while(1)的时候串口窗口里收到的数据有20个,去掉while(1)的时候,只接受到19个,最后一个T丢失了

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
16条回答
aben
2019-10-17 06:07
帅气迷人彬 发表于 2016-12-14 01:30
这两句话位置很关键!!!我重复试了好几次,发现如果倒一下,不管发送几个数据,第二个数据或者第一个数 ...

先说你的情况:首先 每发完一组串口数据 都要等待发送完成标志位 也就是这句while(USART_GetFlagStatus( USART1,  USART_FLAG_TC)==RESET); 干的事 而当你发完最后一组时 没有while(USART_GetFlagStatus( USART1,  USART_FLAG_TC)==RESET);这句了 这时 有没有while(1)就起作用了 我认为while(1)起到的作用就是while(USART_GetFlagStatus( USART1,  USART_FLAG_TC)==RESET);这句的作用 没有while(1)程序就跑飞了。
颠倒过来的情况:我建议你串口初始化完成后 延迟几百毫秒试一试

一周热门 更多>