-PR-
締切済み

シリアルポートの初期化がおかしい?応答がないんです。

  • 困ってます
  • 質問No.84042
  • 閲覧数571
  • ありがとう数3
  • 気になる数0
  • 回答数1
  • コメント数0

お礼率 100% (3/3)

こんにちは、どうか僕の問題を解決してくださいませんか。いまシリアルポートを会したハードウェアの処理を行っています。しかし、ハードウェアに反応があるときと、ないときがあるのです。自分のプログラムで制御しようとすると、コマンドの応答がまったくなく、テラタームでコマンドを送信すると、応答があります。その後、再度自分のプログラムで制御すると、今度は反応があり、うまく制御できます。この状況を経験した方はいませんでしょうか。以下が初期化部分のコードです。



/////////********
以下の関数でポートを開きます。
***************:///////////


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);


よろしくお願いいたします。
通報する
  • 回答数1
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

回答 (全1件)

  • 回答No.1
レベル13

ベストアンサー率 40% (404/988)

もしかして、SetCommStateがうまく働いていないのでは?
Cはいいのですが、何Cで組んでます?
ちょっと、DCB が何をカプセル化したものかわからないので、確かとはいえませんが・・。

ただ、テラターム 処理後に 動作するということは、当該命令だけでは、ACTIVE 状態 にはなりきっていないと思われますね。
つまり、COMが活性状態では無いので、いくら呼び出してもダメとか、OSへの通知が必要な場合などが、考えられませんか。

なにか、もうワンアクション必要なのではないでしょうか??


とりあえず、ハードがらみで、環境がわからないのは、キツイです

補足要求:
・使用機器(パソコンの機種。せめて、PC98かDOS/Vか)
・OS(DOSか、Winかすらわかりません)
・Cのバージョン(この場合コンパイラのバージョンというより、製品名+製品バージョンで)
お礼コメント
tokitokitoki

お礼率 100% (3/3)

お返事が遅れまして申し訳ありません。やはり、おっしゃるとおり、COMポートの初期化が問題でした。(DCBの設定を、しらみつぶしに変えたらできました。)C言語の経験が浅く、C言語といってもさまざまな種類があり、それぞれに違った拡張機能を持っているんですね。これからはそのあたりを明記して質問させていただきます。これからもよろしくお願いします。今回の場合は、MSのVC++6.0で、WINDOWS NT4.0 でプログラミングしました。
投稿日時 - 2001-06-04 10:12:59


このQ&Aで解決しましたか?
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,500万件のQ&Aを分析して最適な回答をご提案します。

関連するQ&A
-PR-
-PR-
このQ&Aにこう思った!同じようなことあった!感想や体験を書こう
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


専門家があなたの悩みに回答!

-PR-

ピックアップ

-PR-
ページ先頭へ