OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3657|回复: 1

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

[复制链接]

3

主题

4

帖子

0

精华

新手入门

积分
19
金钱
19
注册时间
2016-7-5
在线时间
4 小时
发表于 2016-7-5 15:26:37 | 显示全部楼层 |阅读模式
主函数里面的代码如下:
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\r\t",measure_bus_voltage_actual);
                               
                }

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

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

72

主题

2711

帖子

2

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
3505
金钱
3505
注册时间
2014-8-4
在线时间
696 小时
发表于 2016-7-5 16:37:28 | 显示全部楼层
楼上说的有理
猜测:中断发送后标志位没处理好
以我资质之鲁钝,当尽平心静气、循序渐进、稳扎稳打之力。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-2-27 16:59

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表