VC++6.0做的上位机和STM32进行串口通信,printf函数出现异常。

2019-07-20 21:26发布

主函数里面的代码如下:
while(1)
{
if(start_discharger_flag==1)
                {       
                                if(IIC2BQ24195charge_status_read()==3)
                        {
                                IIC2BQ24195charge_discharge_switch(0);
                                GPIO_SetBits(GPIOE,GPIO_Pin_7);
                                start_discharger_flag=0;
                        }
                        printf("1234567");
                        printf("123456");
                }
                if(circle_discharger_flag==1)
                {
                                circle_discharger_flag=0;
                                if(measure_bus_voltage_actual<=2800)
                                printf("μ&#231;3&#216;μ&#231;&#209;1&#214;μ&#206;a£o%5dmv ",measure_bus_voltage_actual);
                               
                }

}
第一个数据接收不到的BUG已经解决。现在出现了多输出了一个数据的BUG。如下图的上位机所示。
]ISQPD3TQJ8[SS{J)FYEFQE.png
可以看得出来,同样是printf函数,第二个printf函数多输出了6。
当然,也试过两个都是一样的printf("1234567");函数,结果是第二个printf函数多输出了个7,第一个printf函数还是正常。
并且可以从图片看出,每8次循环第二个printf 函数就有一次正常。
请问有人知道怎么解决这个问题吗?

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。