• ベストアンサー

H8 3694のシリアルポートについて

H8 3694のシリアルポートについてなんですが、ちょっと分からないとことがあり質問しました。 自分はVC++でH8 3694と接続したいんですがうまくいきません。接続が出来ないです。 そこで質問なんですが、 H8 3694で接続待機状態をしたいんですがどうすればいいかさっぱり分かりません。よろしくお願いします。たとえば接続成功時になんかのレジスタのビットが変わったりするとかありませんか? どこを探してもシリアルポート通信のサンプルプログラムが探しきれません。よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • KEIS050162
  • ベストアンサー率47% (890/1879)
回答No.2

問題をいくつかに分けましょう。 1) Windows上でRS232C通信を使ったソフトを組む これをVC++で作ろうとされていると思いますが、結構骨の折れる作業になります。 RS232Cの制御はとても簡単なのですが、昨今あまり使われることがなくなって来ているようなので、苦労されている方が多いようです。 下記は、個人の方の例ですが、とても分かりやすいかと思います。 http://homepage3.nifty.com/ken-create/vc2010/vct.htm 2) H8 の動作環境でRS232C通信を使ったソフトを組む これはもうあるのでしょうか?先の回答の例は、H8上でRS232Cポートを制御するサンプルです。 これも恐らくWindows上の開発環境を使うのだと思われますが、動作させるのはH8のボード上ということになります。 下記なども参考になるかと思います。 http://www008.upp.so-net.ne.jp/funfly/h8_3.html 3) Windows PCとH8ボードをRS232Cで接続して通信させる 双方ともちゃんと組まれていれば、動作しますが一度に両方デバッグするとどっちが悪いのか分からなくなってしまうので、お勧めは、PC to PCで片方のPCは、TeraTermなどの通信用のフリーソフトなどを使って、 使用するケーブル(PC同士は、RS232CのD-Sub9Pin クロスケーブル)が正しいか、 作ったソフトでちゃんと通信できるか、(簡単な文字”ABC”などを双方から送る)などテストしてみるのが良いでしょう。 その後、PCとH8ボードを組み合わせて、同じ様に通信の確認をしてみてください。 RS232Cでの通信のやり方は色々ありますが、多分、非同期で無手順(フロー制御なし)でやろうとされていると思いますので、ポートのオープン(要は、モードやボーレートのレジスタ設定)が完了すれば、直ちに双方とも通信可能になります。 USBやTCP/IPなどみたいに、通信確立などの処理は必要ありません。 ご参考に。

hanyu-yuugo
質問者

お礼

詳しい解説ありがとうございます。 しらべていくと ポート11を使用していたためならなかったみたいです。 今はポート6に手動で変換し、接続は出来るようになったんですが、また新たに問題点が発生し 受信送信ができなくなる問題点が発生しました。ハイパーターミナルでも無理になってしまってまたまた困りました。

その他の回答 (1)

  • KEIS050162
  • ベストアンサー率47% (890/1879)
回答No.1

http://japan.renesas.com/products/mpumcu/h8/h8300h_tiny/h83672/app_notes.jsp?event=searchFunctions&logo=0&productName=H8%2F3672®ion=jp&hiddenFunctionsKey=&hiddenProductsId=172&hiddenApplicationsKey=&sort=&pageNo=1&redirectEvent=searchFunctions&documentUrl=http%3A%2F%2Fjapan.renesas.com%2Fproducts%2Fmpumcu%2Fh8%2Fh8300h_tiny%2Fh83672%2Fapp_notes.jsp&functionsKey=40&x=38&y=10 取りあえず、この辺りの資料などを。 上記から、シリアル通信(調歩同期)の詳しい資料と、Cのサンプルコードが載っています。 http://documentation.renesas.com/doc/products/mpumcu/apn/rjj06b0434_apn.pdf 通信方式は調歩同期(即ち、非同期)でよいのですよね?つなぐ相手はPCでしょうか? ボーレートの設定、使用する通信モード(非同期、データ長、パリティ、ストップビットなど)をレジスタにセットしたら、後はステータスレジスタをポーリングして、受信データの有り無しを確認します。 接続待機状態のときはステータスレジスタをポーリングして、相手からデータを送れば受信のステータスが変化するのが確認出来るはずです。 詳しくはサンプルコードを参考にしてみてください。

hanyu-yuugo
質問者

補足

接続する媒体はPCですね。 非同期式です。 問題はVisual Studio C++ですね。どうやったら接続できるのかがまったくわからないので

関連するQ&A