主函数里面的代码如下:
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("μç3ØμçÑ1ÖμÎa£o%5dmv
",measure_bus_voltage_actual);
}
}
第一个数据接收不到的BUG已经解决。现在出现了多输出了一个数据的BUG。如下图的上位机所示。
可以看得出来,同样是printf函数,第二个printf函数多输出了6。
当然,也试过两个都是一样的printf("1234567");函数,结果是第二个printf函数多输出了个7,第一个printf函数还是正常。
并且可以从图片看出,每8次循环第二个printf 函数就有一次正常。
请问有人知道怎么解决这个问题吗?
猜测:中断发送后标志位没处理好
一周热门 更多>