C Linux串口-通过串口将()字节发送到目标设备
要将此命令写入目标设备,我需要写入字节C Linux串口-通过串口将()字节发送到目标设备,c,linux,serial-port,C,Linux,Serial Port,要将此命令写入目标设备,我需要写入字节 41 54 2b 07 08 44 46 A6 因此 但是,写入设备的实际字节是 41 54 2b b8 bb 44 46 be 这显然是错误的 0x07 0x08 0xA6 在上面的示例中,我希望如何写入字节 -----写函数------- void WriteToDevice(){ 无符号字符cmd[]={'A','T','+','0x07','0x08','D','F','0xA6'}; int n=写入(fd和cmd,8); 对于(p=0
41 54 2b 07 08 44 46 A6
因此
但是,写入设备的实际字节是
41 54 2b b8 bb 44 46 be
这显然是错误的
0x07 0x08 0xA6
在上面的示例中,我希望如何写入字节
-----写函数-------
void WriteToDevice(){
无符号字符cmd[]={'A','T','+','0x07','0x08','D','F','0xA6'};
int n=写入(fd和cmd,8);
对于(p=0;p而不是“0x07”、“0x08”
等使用'\x07'、'\x08
'等。您希望有人如何帮助,您必须发布写入错误数据的代码。@iharob关于我的问题,您还需要知道什么?代码,如果我看不到代码,就不可能知道它为什么写入错误数据。谢谢,我刚刚尝试了您的方法,但是打印出了字节仍然不是我所期望的,我在代码中做了任何错误的事情吗?是的,我没有注意到。虽然它可以'\x07'
->0x07
@Sam,但您应该启用编译器警告,您对cmd
数组的初始化是错误的。我只是尝试了unsigned char cmd[]={'A',t','+','\x07','\x08',D',F','\xA6'}
和unsigned char cmd[]={'A','T','+',0x07,0x08,'D',F',0xA6};
--它们都按预期工作。@Sam,永远不要再忽略编译器警告。特别是如果你不知道它们的意思。
unsigned char cmd[] = {'A', 'T', '+', "0x07", "0x08", 'D', 'F', "0xA6"};