トップページ > dsPIC入門 > Visual Studio C++でシリアル通信(3)

シリアル通信アプリケーションを作る(3)

文字列送信の基礎

前回の内容で、ボタンに対応するイベント処理のやり方が分かりました。 では、実際にシリアル通信の処理を記述してみます…。 ただ、その前にエラー処理の部分だけ雛型として書いてしまうとラクになります。


try
{

  //ここに処理を書く

}
catch(SystemException^)
{
  MessageBox::Show("エラー");
}


かなり大雑把なエラー対策です。とりあえず、プログラムが記述どおりに走らなかった場合は「エラー」と書かれた メッセージボックスがでてきます。




それでは、ボタンをダブルクリックして例のごとく“ボタンクリック・イベント”に対応する 処理関数のところへ飛んでおきます。ここに、以下のとおり記述します。やっている内容は 「通信ポートの初期化」、「通信ポートのオープン」、「文字列の送信」です。

private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) {

 try
 {

  //==============================================================
  //ポートの設定
  serialPort1->PortName = "COM5";
  serialPort1->BaudRate = 115000;

  //==============================================================
  //ポートを開く
  serialPort1->Open();

  //==============================================================
  //“right”を送信する
  serialPort1->Write("right");

  //==============================================================
  //dsPIC側のプログラムに合わせて、改行文字も送信しておく
  serialPort1->Write("\r");

  //==============================================================
  //とりあえず、ポートをクローズ
  serialPort1->Close();

 }
 catch(SystemException^)
 {
  MessageBox::Show("エラー");
 }

}

デバイスマネージャで確認すると、 今回はUSB-シリアル変換ケーブルがCOM5になっています。 よって、ソースコードの最初の部分でCOM5を使用するように指定しています。 ボーレートはdsPIC側にあわせた値にしましょう。

確認…

[F5]キーを押して、エラーが出ないことを確認します。もしエラーが出る場合はポートを正常に開けていない のが主な原因だと思います。使用するポートをデバイスマネージャで確認してみてください。 特にエラーが出ないなら、dsPIC基盤とつないで、「送信」ボタンを押してみます。 このとき、PICkit2の電源をアプリケーション側でONにすることを忘れず…。今作っているプログラムに 気をとられがちですが、PICkit2アプリケーションを操作しないとdsPICに電源が供給されません…。

問題なければ、dsPIC基盤のLEDが右へ流れるはずです。PC側アプリケーションのボタンを押すと、 自作ボードのLEDが流れる…。なんか、うれしくなりますね。後は同じ要領で、PC間といろいろ通信して 遊ぶことができそうです。




前へ   次へ