こんにちは、どうか僕の問題を解決してくださいませんか。いまシリアルポートを会したハードウェアの処理を行っています。しかし、ハードウェアに反応があるときと、ないときがあるのです。自分のプログラムで制御しようとすると、コマンドの応答がまったくなく、テラタームでコマンドを送信すると、応答があります。その後、再度自分のプログラムで制御すると、今度は反応があり、うまく制御できます。この状況を経験した方はいませんでしょうか。以下が初期化部分のコードです。
/////////********
以下の関数でポートを開きます。
***************:///////////
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);
よろしくお願いいたします。
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
もしかして、SetCommStateがうまく働いていないのでは?
Cはいいのですが、何Cで組んでます?
ちょっと、DCB が何をカプセル化したものかわからないので、確かとはいえませんが・・。
ただ、テラターム 処理後に 動作するということは、当該命令だけでは、ACTIVE 状態 にはなりきっていないと思われますね。
つまり、COMが活性状態では無いので、いくら呼び出してもダメとか、OSへの通知が必要な場合などが、考えられませんか。
なにか、もうワンアクション必要なのではないでしょうか??
とりあえず、ハードがらみで、環境がわからないのは、キツイです
補足要求:
・使用機器(パソコンの機種。せめて、PC98かDOS/Vか)
・OS(DOSか、Winかすらわかりません)
・Cのバージョン(この場合コンパイラのバージョンというより、製品名+製品バージョンで)
お返事が遅れまして申し訳ありません。やはり、おっしゃるとおり、COMポートの初期化が問題でした。(DCBの設定を、しらみつぶしに変えたらできました。)C言語の経験が浅く、C言語といってもさまざまな種類があり、それぞれに違った拡張機能を持っているんですね。これからはそのあたりを明記して質問させていただきます。これからもよろしくお願いします。今回の場合は、MSのVC++6.0で、WINDOWS NT4.0 でプログラミングしました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
三相200Vと、電源の周波数...
-
Hfとは何ですか?(蛍光灯の種...
-
蒸気タービン調圧、調速制御の...
-
理科、独立変数,制御変数 等の...
-
制御量と被制御量の違い
-
エアーバルブとエアーオペレー...
-
X線撮影用タイマとホトタイマの...
-
いじめられて嬉しい心理のは、...
-
開平機能とは何ですか?
-
ボイラの3要素制御についての質問
-
サーボモーターの速度指令について
-
ASモーターについて
-
読点多スギィッッッ
-
PWMとVVVFの違い
-
リアルの自分の性格とネットゲ...
-
市販のDCモーターでトルクを落...
-
Led電光掲示板を自作したい
-
パソコン音声のミュートをVBAか...
-
サーボモータ速度制御での並列...
-
モーターの回転速度を遅くする...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Hfとは何ですか?(蛍光灯の種...
-
いじめられて嬉しい心理のは、...
-
三相200Vと、電源の周波数...
-
蒸気タービン調圧、調速制御の...
-
サーボモーターの速度指令について
-
エアーバルブとエアーオペレー...
-
カスケード制御とオート制御の...
-
ASモーターについて
-
恥じらいとかがなくなり現代人...
-
エクセルVBAにて nアップ印刷...
-
理科、独立変数,制御変数 等の...
-
時限装置の作り方を教えてくだ...
-
操作と制御の違い
-
空調システム温度制御
-
ボイラの3要素制御についての質問
-
サーボモータのゲイン調整とは
-
フラクションコレクター
-
パソコン音声のミュートをVBAか...
-
PIDの調整のコツ
-
X線撮影用タイマとホトタイマの...
おすすめ情報