首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

串口发送hex数据

2013-04-21 
求助 串口发送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发送/显示”指的是“按十进制或十六进制来处理用户输入的字符串/显示接收到的数据”,说白了就是让你脑子里省点事少算一次进制转换,跟串口功能本身没有任何关系

热点排行