トップページ > 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間といろいろ通信して 遊ぶことができそうです。