极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 11391|回复: 6

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

[复制链接]
发表于 2015-1-14 13:42:01 | 显示全部楼层 |阅读模式
我想发送数据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[n];
    Serial.print(azu, HEX);                      //16进制发送数据
    delay(1);
  }
  delay(5000);                                    //间隔5秒
}
程序

串口调试通讯数据







本帖子中包含更多资源

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

x
回复

使用道具 举报

发表于 2015-1-14 15:05:40 | 显示全部楼层
你打印的是16进制数,“16”正好是“10”!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-1-14 20:52:26 | 显示全部楼层
chensg 发表于 2015-1-14 15:05
你打印的是16进制数,“16”正好是“10”!

太感谢了,我一直看错了,苦恼好久。太感谢了。
回复 支持 反对

使用道具 举报

发表于 2015-1-14 22:14:55 | 显示全部楼层
串口软件勾选 十六进制显示  出的数据就会和你的吻合

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

使用道具 举报

发表于 2015-1-14 22:17:29 | 显示全部楼层
数组应该用char型,串口输出不要用hex
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-1-19 18:19:51 | 显示全部楼层
darkorigin 发表于 2015-1-14 22:14
串口软件勾选 十六进制显示  出的数据就会和你的吻合

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

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

使用道具 举报

 楼主| 发表于 2015-1-19 18:21:26 | 显示全部楼层
wangweihe68 发表于 2015-1-14 22:17
数组应该用char型,串口输出不要用hex

我们做自由口通信,需要16进制输出的,不用字符型。还是谢谢你的指教哈!行业不同,用途不同!
回复 支持 反对

使用道具 举报

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

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-18 09:38 , Processed in 0.039318 second(s), 21 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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