关于zduino leonard串口通信问题-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 8890|回复: 11

[已解决] 关于zduino leonard串口通信问题

[复制链接]
发表于 2013-5-8 20:08 | 显示全部楼层 |阅读模式
本帖最后由 joker_yxf 于 2013-5-9 12:36 编辑

以下是我的程序
void setup() {
Serial.begin(9600);
while (!Serial) {;}
}
void loop() {
Serial.println("hello");
while(1);
}

但是打开serial monitor后却收不到任何信息,请问是哪里出问题了?
发表于 2013-5-8 20:30 | 显示全部楼层
while (!Serial) {;}

这个移出来,放到LOOP里面不然永远发不出数据
 楼主| 发表于 2013-5-8 20:43 | 显示全部楼层
古尔丹 发表于 2013-5-8 20:30
while (!Serial) {;}

这个移出来,放到LOOP里面不然永远发不出数据

可以的,如果我把loop里的while(1)这句移掉,也就是说循环打印hello world的话,在串口监视器中可以得到hello world的
发表于 2013-5-8 20:53 | 显示全部楼层
其实你的串口工具打开以后你复位下你的板子就应该能收到一句Hello了
发表于 2013-5-8 21:10 | 显示全部楼层
你加了while(1)啊,死循环了
 楼主| 发表于 2013-5-8 21:44 | 显示全部楼层
奈何col 发表于 2013-5-8 21:10
你加了while(1)啊,死循环了

我是先Serial.println("hello world")才进入那个死循环的啊
 楼主| 发表于 2013-5-8 21:45 | 显示全部楼层
zx_1923 发表于 2013-5-8 20:53
其实你的串口工具打开以后你复位下你的板子就应该能收到一句Hello了

leonard不需要手动复位的
发表于 2013-5-8 21:50 | 显示全部楼层
joker_yxf 发表于 2013-5-8 21:45
leonard不需要手动复位的

我是说你手动按一下复位键。
你打开串口助手没有收到数据的原因是这样的:
因为你的串口打开以后就发送了Hello,完了之后就不发了,while(1);死等待,而你打开串口助手的速度肯定在你下载完程序之后,所以你就没有看到,但实际上它已经发送了,让你按复位是让板子把程序重新执行一遍,你就能看到发送的一句Hello了,或者你就把while(1);去掉,让 它连续发送
 楼主| 发表于 2013-5-8 21:57 | 显示全部楼层
zx_1923 发表于 2013-5-8 21:50
我是说你手动按一下复位键。
你打开串口助手没有收到数据的原因是这样的:
因为你的串口打开以后就发送了 ...

嗯,我也这样认为,之前在pritln之前加了个delay然后确实可以收到。但是leonardo手动复位之后我这必须重新插拔才能再连上板
发表于 2013-5-8 22:29 | 显示全部楼层
对的,没有任何问题,你看不到输出,是因为在你打开串口监视器的时候,已经输出了,这个过程就是一瞬间的事

点评

你给print前加个延时3秒,或者可以把while去了,就可以看到了  详情 回复 发表于 2013-5-8 22:30
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-12-3 05:51 , Processed in 0.082042 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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