シリアルポートの初期化がおかしい?応答がないんです。
こんにちは、どうか僕の問題を解決してくださいませんか。いまシリアルポートを会したハードウェアの処理を行っています。しかし、ハードウェアに反応があるときと、ないときがあるのです。自分のプログラムで制御しようとすると、コマンドの応答がまったくなく、テラタームでコマンドを送信すると、応答があります。その後、再度自分のプログラムで制御すると、今度は反応があり、うまく制御できます。この状況を経験した方はいませんでしょうか。以下が初期化部分のコードです。
/////////********
以下の関数でポートを開きます。
***************:///////////
CreateFileCom(comFileName, &phCom, lBaudRate, lDataByteSize,
lParity, lStopBit)
///////*******省略
{
DCB dcb;
GetCommState((*phCom),&dcb);
dcb.BaudRate = lBaudRate;
dcb.ByteSize = (BYTE)lDataByteSize;
dcb.Parity = (BYTE)lParity;
dcb.StopBits = (BYTE)lStopBit;
SetCommState((*phCom),&dcb);
}
}
/////////////*********
以下がメイン関数の初期化部分です。
**************/////////////
FILE* fp;
LPCSTR comFileName = "COM1";
long lBaudRate = CBR_9600;
long lDataByteSize = 8;
long lParity = NOPARITY;
long lStopBit = ONESTOPBIT;
int returnValue;
char str[1024];
char end_str[2] = "\r";
int j;
fRetVal = CreateFileCom(comFileName, &phCom, lBaudRate, lDataByteSize,
lParity, lStopBit);
よろしくお願いいたします。