这里通过ch=getchar();是得到单个字符对吗?
我发送12345,
为什么接受到的结果是
ch=1;
ch=2;
啊?
我觉得结果要么是
ch=1;
要么是
ch=1;
ch=2;
ch=3;
ch=4;
ch=5;
才对啊
/-------------------------------------------------------------------------------------/
补充一下问题,这下彻底懵了
听取评论的建议
我把%c之后的换行符删去之后,
输入5个数以内1234,会出来1和2
输入9个数以内12345678,会出来1和2和5
输入13个数以内123456789abc,会出来1和2和5和9
输入17个数以内123456789abcdef1,会出来1和2和5和9和d
再输入第17个数的话123456789abcdef12,就变成1和2和5和9和d和2
也就是说第1,2,5,9,13,17位被输出了,其他位不见了。
我再把%c之后的换行符加上(或者在%c后面加一个空格),
现在变成了第1,2,6,11,16位被输出了,其他位不见了。
以上情况LED灯都会按照输出的最后一个字符正常亮灭。
感觉我已经不指望能解决这个问题了,留给有兴趣的兄弟吧,感谢你们
因为接收到一个字符后,printf里面的换行被getchar获取到,所以第二次getchar的时候就没了
可能是串口缓冲区长度有限,后面的送过来的时候,你前面的还没读走,就丢了。