游戈 发表于 2015-1-14 13:42:01

Arduino UNO R3发送通讯数据···不对···

我想发送数据600020161,结果却是60002011 。为什么写的是16,可实际发送的是1呢?
我是新手,请教高手帮我解答哈!!!
下面是程序
/*Arduino UNO R3发送通讯数据*/
int azus[] = { 06, 00, 00, 00, 02, 00, 16, 01 };//a组发送的通讯数据
void setup() {
Serial.begin(9600);                            //通讯波特率9600
}

void loop() {
for (int n = 0; n < 8; n++) {
    int azu = azus;
    Serial.print(azu, HEX);                      //16进制发送数据
    delay(1);
}
delay(5000);                                    //间隔5秒
}
程序

串口调试通讯数据







chensg 发表于 2015-1-14 15:05:40

你打印的是16进制数,“16”正好是“10”!:lol

游戈 发表于 2015-1-14 20:52:26

chensg 发表于 2015-1-14 15:05 static/image/common/back.gif
你打印的是16进制数,“16”正好是“10”!

太感谢了,我一直看错了,苦恼好久。太感谢了。

darkorigin 发表于 2015-1-14 22:14:55

串口软件勾选 十六进制显示出的数据就会和你的吻合

另外楼主 建议你每个循环打印一个换行 这样方便自己看结果。
就是在FOR(。。。){。。。。。。}后面输出一个换行

wangweihe68 发表于 2015-1-14 22:17:29

数组应该用char型,串口输出不要用hex

游戈 发表于 2015-1-19 18:19:51

darkorigin 发表于 2015-1-14 22:14 static/image/common/back.gif
串口软件勾选 十六进制显示出的数据就会和你的吻合

另外楼主 建议你每个循环打印一个换行 这样方便自己 ...

飞常感谢,我是做工控的,需要数据连续输出,不常用换行。可能行业不同,用途不同吧!还是非常感谢你的指教。这几天很忙,忘记回复鸟。

游戈 发表于 2015-1-19 18:21:26

wangweihe68 发表于 2015-1-14 22:17 static/image/common/back.gif
数组应该用char型,串口输出不要用hex

我们做自由口通信,需要16进制输出的,不用字符型。还是谢谢你的指教哈!行业不同,用途不同!
页: [1]
查看完整版本: Arduino UNO R3发送通讯数据···不对···