极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 35192|回复: 15

一个Arduino串口实验问题分析

[复制链接]
发表于 2012-6-27 20:00:47 | 显示全部楼层 |阅读模式
某童鞋给Arduino写了一个代码,目标是通过电脑上串口给Arduino发送数据,然后让Arduino再返回来相同的值,然后显示在串口监视器中。

以下是刚开始的代码
  1. void setup()
  2. {
  3.   Serial.begin(9600);
  4. }

  5. void loop()
  6. {
  7.   if (Serial.available()>0)
  8.   {
  9.     int data=Serial.read();
  10.     Serial.println(data);
  11.     delay(1000);
  12.   }
  13. }
复制代码

但是在串口监视器中输入1,结果返回结果是49~~而不是想要的1。如下图



原因是因为,在串口监视器中输入的数值是字符串,而代码中,int data=Serial.read();对串口读取回来的字符串数据,强行定义为int数值,在ASCII表中,1的DEC值刚好就是49,也就是。。。显示了1的DEC值。

这段代码只需要把int data=Serial.read();更改为char data=Serial.read();就可以了。

下面是正确代码,感谢elitezhe童鞋提供的解决方法。。。

  1. void setup()
  2. {
  3.   Serial.begin(9600);
  4. }

  5. void loop()
  6. {
  7.   if (Serial.available()>0)
  8.   {
  9.     char data=Serial.read();
  10.     Serial.println(data);
  11.     delay(1000);
  12.   }
  13. }
复制代码
正确的实验结果如下图:



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

评分

参与人数 1 +1 收起 理由
幻生幻灭 + 1 加一个[编程技巧]一类的标签吧,方便日后整.

查看全部评分

回复

使用道具 举报

发表于 2012-6-27 20:04:43 | 显示全部楼层
占楼先
回复 支持 反对

使用道具 举报

发表于 2012-6-27 20:05:00 | 显示全部楼层
支持 = = 为什么我有一种被当小白鼠的感觉
回复 支持 反对

使用道具 举报

发表于 2012-6-27 20:05:13 | 显示全部楼层
沙发坐了。谢谢分享
回复 支持 反对

使用道具 举报

发表于 2012-6-27 20:05:53 | 显示全部楼层
风轻云淡 发表于 2012-6-27 20:05
沙发坐了。谢谢分享

少年 你手慢了
回复 支持 反对

使用道具 举报

发表于 2012-6-27 21:02:45 | 显示全部楼层
沙发早没了。只剩底板了。。
回复 支持 反对

使用道具 举报

发表于 2012-6-27 22:13:31 | 显示全部楼层
本帖最后由 cosailer 于 2012-6-27 22:15 编辑

我觉得最好还是用byte吧,串口数据传的都是byte,然后再CAST到相应的数据类型
回复 支持 反对

使用道具 举报

发表于 2012-6-27 23:06:36 | 显示全部楼层
话说我开始也遇到这个问题了
回复 支持 反对

使用道具 举报

发表于 2012-6-28 08:39:04 | 显示全部楼层
┏ωǒ┛菰独 发表于 2012-6-27 20:05
少年 你手慢了

怎么会这样呢,明明是我先回了呢.
回复 支持 反对

使用道具 举报

发表于 2012-6-28 11:32:25 | 显示全部楼层
太爱这种剖析疑难杂症的帖子了
回复 支持 反对

使用道具 举报

发表于 2012-8-3 22:28:25 | 显示全部楼层
原来如此...
回复 支持 反对

使用道具 举报

发表于 2012-9-25 20:45:58 | 显示全部楼层
汗...我也是没注意这个问题...幸好对ASCII码比较熟悉,一看就知道是类型错了...
回复 支持 反对

使用道具 举报

发表于 2013-4-23 22:14:37 | 显示全部楼层
好贴!!!!
回复 支持 反对

使用道具 举报

发表于 2013-4-24 20:34:00 | 显示全部楼层
今天开始玩ARDUINO的串口,也遇到这个问题了~感谢释疑~
回复 支持 反对

使用道具 举报

发表于 2013-4-27 15:58:31 | 显示全部楼层
谢谢分享
回复 支持 反对

使用道具 举报

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

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-16 07:14 , Processed in 0.042009 second(s), 32 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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