我無法使用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