求助 串口发送hex数据需要向串口 hex发送: ff_01_00_04_ff_00_04 (_为空格)我的代码char ch_OutBuffer[]{
求助 串口发送hex数据
需要向串口 hex发送: ff_01_00_04_ff_00_04 (_为空格)
我的代码
char ch_OutBuffer[]={0xff , ' ', 0x01 , ' ', 0x00 , ' ', 0x04, ' ',
0xff, ' ', 0x00, ' ', 0x04};
DWORD w_BytesWrite = 8;
WriteFile(hCom, ch_OutBuffer, w_BytesWrite, &w_BytesWrite, NULL);
但是没有收到数据。
我觉得是我ch_OutBuffer这个格式不对...
char ch_OutBuffer[]={'f ', 'f' , ' ', '0' , '1' ,' ' , '0', '0', ' ', '0', '4', ' '
, 'f', 'f', ' ', '0', '0', ' ', '0', '4'};
这样设置就没有16进制了。
就是串口助手里有一个选项“hex发送”这个的功能~~~
注:dcb已经设置无误。
[解决办法]ch_OutBuffer这个格式并没有问题,w_BytesWrite应该为13才对。
[解决办法]楼主你先弄清楚你要发送的数据是几个字节
如果是ff_01_00_04_ff_00_04这个字符串,那就是2+1+2+1+2+1+2+1+2+1+2+1+2=20个字节
如果是{0xff,0x01,0x00,0x04,0xff,0x00,0x04}这个字符数组,那就是7个字节
串口助手的“hex发送/显示”指的是“按十进制或十六进制来处理用户输入的字符串/显示接收到的数据”,说白了就是让你脑子里省点事少算一次进制转换,跟串口功能本身没有任何关系