举例说明,当从PC发送第一个数据M时,i =1,则执行的是 if(i<100)中的命令。
单片机向PC返回的数据分别是,SBUF=48+i/10; SBUF=48+i%10; SBUF=a; 也就分别是,48 ,49 和M。 而串口调试助手 通常情况下是以 ASCII 码的形式显示数据, 48对应ASCII 码中的 0, 49对应1。所以会有01M,02M。 你说一上电会自动输出01,应该是初始化 FLAG 时,没有设为0,虽然有系统会默认全局变量为0,但也有意外,也就是说有可能上电时,FLAG就为1,所以才会自动发送01。个人愚见,稍作参考。