串口发送\r\n的有关问题
串口发送\r\n的问题
我需要从串口发送形如“#1P600T1000\r\n”的指令,其中P和T之间的数字是变化的
我的发送指令现在是这样写的
但是指令输出没有效果,用串口调试软件分别发送消息就可以,请问是什么原因?
------解决方案--------------------
指令码的 长度有误
我需要从串口发送形如“#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);