highplay86 发表于 2012-10-7 11:29:42

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

int value=0;
int key;
int val;//定义变量val
char cmd={0};

byte hex=0x80;

void setup()
{
Serial.begin(9600);
pinMode(13,OUTPUT);
}
void loop()
{
if(Serial.available())
{
value=Serial.read();
val=hex|0x01;
    Serial.println(val,BIN);
    val=val|0x02;
    Serial.println(val,BIN);
    cmd=val;
    Serial.println(cmd,BIN);
}
if(val)
    {
      digitalWrite(13,HIGH);
    }
    else digitalWrite(13,LOW);
}


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

萧芸凤 发表于 2012-10-7 15:19:30

char cmd[]是字符数组,也就是字符串,和C中的string类似,赋值是应该是cmd="ssddgh",双引号中是你需要的字符串。你这样赋值可能有问题,如果是想得到八位变量可以用byte类型

Tim 发表于 2012-10-7 15:40:46

我不是太清楚,就是把这句"char cmd={0};"改成“int cmd={0}; 或者 byte cmd={0};”都能正常显示,就是char不行,我也不解呀{:soso_e127:} 坐等高手解决
页: [1]
查看完整版本: Arduino中二进制数据的输出问题,求解...