unsigned char cmd[] = {'A', 'T', '+', "0x07", "0x08", 'D', 'F', "0xA6"};
爲了寫這個命令我的目標設備,我希望 Linux的串行端口 - wrtie()字節到目標設備通過串口
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]
如何你是否期待有人提供幫助,你必須發佈編寫錯誤數據的代碼。 –
@iharob你還需要了解我的問題嗎? – Sam
代碼,如果我沒有看到代碼,就不可能知道它爲什麼寫錯了數據。 –