极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 24312|回复: 2

Arduino中二进制数据的输出问题,求解...

[复制链接]
发表于 2012-10-7 11:29:42 | 显示全部楼层 |阅读模式
  1. int value=0;
  2. int key;
  3. int val;//定义变量val
  4. char cmd[10]={0};

  5. byte hex=0x80;

  6. void setup()
  7. {
  8.   Serial.begin(9600);
  9.   pinMode(13,OUTPUT);
  10. }
  11. void loop()
  12. {
  13.   if(Serial.available())
  14.   {
  15.   value=Serial.read();  
  16.   val=hex|0x01;
  17.     Serial.println(val,BIN);
  18.     val=val|0x02;
  19.     Serial.println(val,BIN);
  20.     cmd[0]=val;
  21.     Serial.println(cmd[0],BIN);
  22.   }
  23.   if(val)
  24.     {
  25.       digitalWrite(13,HIGH);
  26.     }
  27.     else digitalWrite(13,LOW);
  28. }
复制代码


如上是一个用来测试Arduino输出二进制数据的格式...如下图,为什么前两个输出的是8位的数据,而第三个用字符数组Print出来的数据就会变成32位的?...char型的数据不是一个字节吗?...应该是8位才对啊?...
求解...

本帖子中包含更多资源

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

x
回复

使用道具 举报

发表于 2012-10-7 15:19:30 | 显示全部楼层
char cmd[]是字符数组,也就是字符串,和C中的string类似,赋值是应该是cmd[10]="ssddgh",双引号中是你需要的字符串。你这样赋值可能有问题,如果是想得到八位变量可以用byte类型
回复 支持 反对

使用道具 举报

发表于 2012-10-7 15:40:46 | 显示全部楼层
我不是太清楚,就是把这句"char cmd[10]={0};"改成“int cmd[10]={0}; 或者 byte cmd[10]={0};”都能正常显示,就是char不行,我也不解呀{:soso_e127:} 坐等高手解决
回复 支持 反对

使用道具 举报

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

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-5-2 15:51 , Processed in 0.042826 second(s), 20 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

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