![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
現在、Turbo C++を用いてソフトを作っています。WinAPI関数を用いて、RS232Cによって電子回路とPC間でシリアル通信を行っています。デスクトップのパソコンでは通信はうまくできていたのですが、ノートパソコンに、USBとRS232Cの変換ケーブルを用いて同じプログラムを動かしたところ、データ受信が全くされません。CreateFile関数はエラーは出ませんが、ReadFile関数などは受信されずに待機しているような状況です。コムポートの設定も問題はないと思うのですが、他に何か問題はあるでしょうか。
予想できる範囲でわかる方お願いします。
No.2ベストアンサー
- 回答日時:
こんにちは。
ハードウェアフロー制御(CTS/RTS)に起因する障害であれば、WinAPI の SetCommState関数
を使用してハードウェアフロー制御を無効とするような設定にした方が良いかもしれません。
具体的には、SetCommState関数 に渡す DCB構造体 の下記メンバあたりを上手く調整して、
何度か試験してみると良いかもしれません。
DWORD fOutxCtsFlow :1; //CTS入力信号監視 有効/無効→ハードウェアCTSフロー制御の有無
DWORD fOutxDsrFlow :1; //DSR入力信号監視 有効/無効→ハードウェアDSRフロー制御の有無
DWORD fDtrControl :2; //DTR制御方式の指定
DWORD fDsrSensitivity :1; //DSRの状態に対する感度設定
DWORD fTXContinueOnXoff :1; //通信相手の受信バッファーがFULL状態でXoffCharが送られて
//きた時の送信継続/中止設定(ソフトウェアフロー制御時)
DWORD fOutX :1; // 送信のソフトウェアフロー制御設定 有効/無効
DWORD fInX :1; // 受信のソフトウェアフロー制御設定 有効/無効
DWORD fRtsControl :2; //RTS出力信号制御 有/無 及び 制御方式設定
シリアル通信関連の WinAPI に関しては、下記サイトが参考になるかもしれません。
■参考サイト
◎RS232C シリアル通信
http://www.ys-labo.com/BCB/2007/070512%20RS232C% …
◎Win32API 関数&構造体一覧
http://www.ys-labo.com/pc/2007/070519%20COM%20Fu …
◎RS232C通信 (PC - PIC間)
http://www.ys-labo.com/pic/pic%20chips/pic%20chi …
・このページに、C++ Buider Ver.6 + WinAPI を使用したサンプルプログラムが掲載されています。
No.1
- 回答日時:
デスクトップでUSB-RS232Cケーブルを使用した場合はどうなりますか?
おそらくノートと同じ状態になるのではないかと推測しますが。
USB-RS232ケーブルは、シリアルポートの制御を「ある程度」エミュレートしているだけで、DTRやCTSについてはデバイス(に付帯するドライバー)任せです。
その為、CTS等の制御を行っている場合には正常に動作しない場合があります。
この回答への補足
デスクトップのパソコンでケーブルを用いて試してみたところ、おっしゃる通りで、データ受信は行えませんでした。
対処法はないのでしょうか。。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PLC間の信号のやりとりについて...
-
Picマイコンについて質問します...
-
VTRとマイコン
-
ディスプレイ上で起こる2重表...
-
HDMIとHDの違いはなんですか? ...
-
ゲーミングPCでの質問です ゲー...
-
TAとルーターの違いって?
-
目を左右別々に動かす
-
IIS環境にてJAVAを使用したいの...
-
インターネットに接続できなく...
-
PCの画面をTVにも映したい
-
「かりん」を数字で表すとした...
-
ワークグループとドメインの共存
-
買ったばかりの液タブの画面が...
-
両面ユニバーサル基板の活用方法
-
プリント基板のパターンの修復方法
-
富士通デスクトップパソコンに...
-
だれかいい案ありません
-
HyperVで仮想マシンがネットワ...
-
HDDの増設について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
PLC間の信号のやりとりについて...
-
USBからの電源供給をコントロー...
-
VBでUSBポートからの入力を制御...
-
AVRマイコンの未使用ピンの処理...
-
シーケンスのプログラムについ...
-
EnumとType
-
Visual BasicでGP-IBの通信を制...
-
PIC16F1827でPCとシリアル接続
-
H8マイコンの端子の数字の端子...
-
PCのUSBバスパワーの制御
-
Visual Basic 6.0のShell関数
-
家電のcpu
-
MATLABでサーボモータを制御す...
-
マイコンボード上のポートと端...
-
C++でLEDを点灯させるプログラム
-
picマイコンより簡単に扱えるマ...
-
コンピューターでラジコン操作?
-
arduinoで複数のサーボを動かし...
-
arduinoでミスト機を自作したい
-
パラレルポート
おすすめ情報