unsigned char cmd[] = {'A', 'T', '+', "0x07", "0x08", 'D', 'F', "0xA6"};
41 54 2b 07 08 44 46 A6
据此写字节。
然而,写入设备的实际字节
41 54 2b b8 bb 44 46 be
,并在
0x07 0x08 0xA6
显然不对怎么写字节我期望在上面的例子?
-----写功能-------
void WriteToDevice(){
unsigned char cmd[]={'A', 'T', '+', "0x07", "0x08", 'D', 'F', "0xA6"};
int n = write(fd,&cmd,8);
for(p=0;p<8;p++){
printf("bytes written: %02x \n", cmd[p]);
}
if(n<0){
printf("write error \n");
}
else{
printf("%d bytes written \n", n);
}
};
编译器警告
warning: (near initialization for ‘cmd[3]’) [enabled by default]
warning: initialization makes integer from pointer without a cast [enabled by default]
2015-10-03
Sam
+0
如何你是否期待有人提供帮助,你必须发布编写错误数据的代码。 –
+0
@iharob你还需要了解我的问题吗? –
+0
代码,如果我没有看到代码,就不可能知道它为什么写错了数据。 –