所以我希望我的程序将一个 int 传递给串行端口,但是 javascript 使所有数字都浮动,这很糟糕。如果我尝试更多
sp.write(255)//outputs 0x080000010000000000000000020000
sp.write(256)//outputs infinitely
我把它连接到一个公共汽车海盗上,这样我就可以检查输出了
如果我将数字转换为十六进制字符串,那么串口会发出与我的数字等效的字符,这也很糟糕。
var hex=(0xFF).toString(8);
sp.write(hex); //out=0x333737 which is 377=>0x0255 oh and not 8 bits...
hex=(0xFF).toString(16);
sp.write(hex); //out=0x6666 which is FF so at least that one makes some sense
hex=0b10101010; // error... binary does work when i run javascript in html though
但它确实输出 asci 字符,以便我在另一侧得到正确的十六进制
我试过了
function hex2a(hexx) {
var hex = hexx.toString();//force conversion
var str = '';
for (var i = 0; i < hex.length; i += 2)
str += String.fromCharCode(parseInt(hex.substr(i, 2), 16));
return str;
}
但是对于那个 0xff=>0x2505
我也试过
hex = String.fromCharCode(hex)
它可以完美地工作到 127,之后它是 2 个字节,第一个字节是 194 或 195
我需要能够将 8 个字节的整数位数据发送到 arduino。