关于serial.write()发送16进制数据错误的问题
请教大家,关于serial.write()发送16进制数据错误的问题。我的代码是:
unsigned char hexdata = {0x00,0x00,0x02,0x03,0x00,0x00,0x00,0x08,0x44,0x3F};
int EN = 2;
void setup()
{
pinMode(EN, OUTPUT);
Serial.begin(9600);
}
void loop()
{
digitalWrite(EN, HIGH);
Serial.write(hexdata,10);
delay(1000);
}
使用串口助手收到的数据却是“08 02 03 00 00 00 08 44 3F”,改变数据数量发现都是前两个字节被替换成了1个字节,莫名其妙啊。
硬件配置:Arduino UNO+Max485,使用外置电源(USB情况也一样) 我用你的程式, 再用一個 VB 的 comTerminal 程式接收, 完全沒問題.
會否是串口助手的設定上有問題. :L不会吧,我这么衰么:'( 换了个串口助手软件,还是不行,发送的数据是“0x02,0x03,0x00,0x00,0x00,0x08,0x44,0x3F”
前两个数据还是被替换了,还且还会变化。
会不会是我的Max485模块有问题啊。但是用网上封装好的modbus master例程,通讯数据是正确的 Super169 发表于 2015-3-23 11:09 static/image/common/back.gif
我用你的程式, 再用一個 VB 的 comTerminal 程式接收, 完全沒問題.
换了个串口助手软件,还是不行,发送的数据是“0x02,0x03,0x00,0x00,0x00,0x08,0x44,0x3F”
前两个数据还是被替换了,还且还会变化。
会不会是我的Max485模块有问题啊。但是用网上封装好的modbus master例程,通讯数据是正确的 硬件是这样的 Super169 发表于 2015-3-23 11:09 static/image/common/back.gif
我用你的程式, 再用一個 VB 的 comTerminal 程式接收, 完全沒問題.
谢谢啊,问题解决了。
我把Max485的Vcc和Gnd接上了,数据就是对的,吐血了
页:
[1]