【讨论】串口只输入一个字符,但是Serial.available()却true了3次
本帖最后由 疯子。 于 2013-7-20 14:08 编辑问题解决了。
是串口监视器部分不知道什么时候设置成“换行和回车”了
char incomingByte; //传入的串行数据
void setup() {
Serial.begin(9600); // 打开串行端口,设置传输波特率为9600 bps
}
void loop() {
//只有当你接收到数据时才会发送数据,:
if (Serial.available() > 0) {
//读取传入的字节:
incomingByte = Serial.read();
//显示你得到的数据:
Serial.print("I received: ");
Serial.println(incomingByte);
}
}
好了,串口监视器部分不知道什么时候设置成“换行回车”了 本帖最后由 拾瑞 于 2013-7-20 12:50 编辑
让它以十六进制显示一下,后面二个"空"的具体代码是什么?
--------------------------------------
9600的速率,换算一下每发送一个字节(Byte)的时间为1毫秒左右,难道是太慢了,而LOOP里面的代码执行太快,但串口是全双工的,发送和接收理应没有延时的才对,不会出现半双工时发送和接收切换延时问题的!
-------------------------------------
你用什么向UNO串口发送字符的?改用串口助手看看!我的UNO不在手上,不然我试一下!
拾瑞 发表于 2013-7-20 12:33 static/image/common/back.gif
让它以十六进制显示一下,后面二个"空"的具体代码是什么?
--------------------------------------
9600的 ...
谢谢您,问题解决了。
是串口监视器部分不知道什么时候设置成“换行和回车”了 看不大明白。发送了三个字符?数字后多了换行符和回车符? wangnengjie 发表于 2013-7-20 20:56 static/image/common/back.gif
看不大明白。发送了三个字符?数字后多了换行符和回车符?
是的
页:
[1]