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

串口发送\r\n的有关问题

2012-05-07 
串口发送\r\n的问题我需要从串口发送形如“#1P600T1000\r\n”的指令,其中P和T之间的数字是变化的我的发送指

串口发送\r\n的问题
我需要从串口发送形如“#1P600T1000\r\n”的指令,其中P和T之间的数字是变化的
我的发送指令现在是这样写的

C/C++ code
    char sMess[] = "#1P";    DWORD sSize = sizeof(sMess);    LPDWORD ssSize = &sSize;    WriteFile(hCom,sMess,sSize,ssSize,NULL);    sSize = sizeof(sAngle);//sAngle为输入的数字转换为char*    WriteFile(hCom,sMess,sSize,ssSize,NULL);    char eMess[] = "T1000";    sSize = sizeof(eMess);    WriteFile(hCom,eMess,sSize,ssSize,NULL);    BYTE SendOrder[2] = {0x0d,0x0a};//这里把\r\n转换成16进制数出    sSize = sizeof(SendOrder);    WriteFile(hCom,SendOrder,sSize,ssSize,NULL);

但是指令输出没有效果,用串口调试软件分别发送消息就可以,请问是什么原因?

[解决办法]
指令码的 长度有误

C/C++ code
  char sMess[] = "#1P";    DWORD sSize = sizeof(sMess)-1;    LPDWORD ssSize = &sSize;    WriteFile(hCom,sMess,sSize,ssSize,NULL);    sSize = sizeof(sAngle)-1;//sAngle为输入的数字转换为char*    WriteFile(hCom,sMess,sSize,ssSize,NULL);    char eMess[] = "T1000";    sSize = sizeof(eMess)-1;    WriteFile(hCom,eMess,sSize,ssSize,NULL);    BYTE SendOrder[2] = {0x0d,0x0a};//这里把\r\n转换成16进制数出    sSize = sizeof(SendOrder);    WriteFile(hCom,SendOrder,sSize,ssSize,NULL); 

热点排行