WeStudio技术社区

 找回密码
 立即注册

快捷登录

QQ登录

只需一步,快速开始

查看: 2475|回复: 0

串口读取到的数据是10进制的还是16进制的?

[复制链接]

99

主题

142

帖子

1046

积分

版主

Rank: 7Rank: 7Rank: 7

积分
1046
发表于 2020-5-15 15:53:33 | 显示全部楼层 |阅读模式
本帖最后由 hixon 于 2020-5-15 15:54 编辑

1、有很多用户第一次使用串口读取数据时有个疑惑,device.com0.read() 返回的数据是10进制还是16进制?

其实串口读到的数据就是个字节数组,我们要进行比较的时候可以用10进制数来比,也可以用16进制来比,如:
var data = device.com0.read();
if (data[0] == 0x64) {
}

if (data[0] == 100) {
}
是一样的效果。

2、另外有的用户想让读到的数据以16进制形式显示到一个标签控件上。

ui.main.label.text = util.arrayToHexString(data); // util.arrayToHexString能够将一个数组转换成以空格分隔的16进制字符串,如 'aa bb cc ...'

3、还有的用户想只显示数组中的某一个字节到标签控件上。JS语言中,toString()可以将数字转换成字符,参数可以传想要的进制,如16,2。

ui.main.label.text = data[0]; // data[0]以10进制显示

ui.main.label.text = data[0].toString(2); // data[0]转换成2进制后显示

ui.main.label.text = data[0].toString(16); // data[0]转换成16进制后显示
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|物一世(北京)科技有限公司 ( 京ICP备20025895 )

GMT+8, 2024-4-20 07:16 , Processed in 0.011153 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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