トップページ > dsPIC入門 > Visual Studio C++でシリアル通信(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間といろいろ通信して 遊ぶことができそうです。