小弟在某宝买了数字舵机及其控制板,利用usb转ttl串口控制,根据卖家提供的协议小弟在vs2010编写了一个简单的c++的16进制串口发送程序如下。
#include<Windows.h>
#include<iostream>
int main()
{
HANDLE hcom;
hcom=CreateFile("COM2",GENERIC_READ|GENERIC_WRITE,0,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);
if(hcom==INVALID_HANDLE_VALUE)
{
return -1;
}
SetupComm(hcom,1024,1024);
DCB dcb;
GetCommState(hcom,&dcb);
dcb.BaudRate=9600;
dcb.ByteSize=8;
dcb.Parity=NOPARITY;
dcb.StopBits=1;
SetCommState(hcom,&dcb);
char data[]={0x55,0x55,0x08,0x03,0x01,0xE8,0x03,0x01,0xD0,0x07};
DWORD dwWrittenLen=0;
if(!WriteFile(hcom,data,8,&dwWrittenLen,NULL))
{
return -1;
}
CloseHandle(hcom);
return 0;
}
利用此发送程序发送无法控制舵机
而选择串口调试工具发送数据却可以达到控制效果
如下图所示
两者发送的数据都是根据协议来的,都是正确的,相关设置一样为什么会出现在vs2010上无法达到串口控制效果。希望得到各位解答