我无法使用Visual C++写一个字符串到我的Arduino上。我以某种方式能够打开COM端口,但无法将数据发送到Arduino。我的情况实际上会是什么?串口通信Arduino VC++
int main()
{
HANDLE hComm;
hComm = CreateFileA("\\\\.\\COM11",
GENERIC_READ | GENERIC_WRITE,
0,
0,
OPEN_EXISTING,
FILE_FLAG_OVERLAPPED,
0);
if (hComm == INVALID_HANDLE_VALUE)
{
printf("com not opened");
}
else
{
printf("COM OPENED");
}
COMMTIMEOUTS cto = { 1, 100, 1000, 0, 0 };
DCB dcb;
memset(&dcb,0,sizeof(dcb));
dcb.DCBlength = sizeof(dcb);
dcb.BaudRate = 38400;
dcb.fBinary = 1;
dcb.Parity = NOPARITY;
dcb.StopBits = ONESTOPBIT;
dcb.ByteSize = 8;
if(!SetCommState(hComm,&dcb))
{
printf("HI");
}
while(1)
{
char bag[]="L";
DWORD read=0 ;
DWORD write=1; // Number of bytes to write to serial port
// Decmial value to write to serial port
WriteFile(hComm, bag,write,&write, NULL);
}
}
请在格式化代码时加倍小心。因为你发布的代码几乎不可读,并且会让任何选择帮助你工作的人比他们应该做的更难。 – talonmies 2012-02-19 17:45:15
你怎么知道你“无法发送数据”?你的结果是什么?测试串行通信的一个好方法是使用像com0com这样的虚拟串行端口。 – 2012-02-19 17:43:43
多数民众赞成多数民党这是因为我编程arduino濒临灯光,如果“L”发送和我尝试使用tera术语和灯闪烁当我通过tera term软件发送“L” – 2012-02-19 18:13:10