C#でserialportの使いかた
通信は通信クロック、データプロトコルという2大要素で成り立っている気がします。
しかし232CにはRX、TX、GNDピンしかマイコンでは使わないことが多いです。
通信速度は384,000bpsか、192000bpsがマイコンでは多いです。速度は出ないので気をつけて下さい。
より高速な通信は違う規格で行うのが良いでしょう(例えばUSBとか)。
しかし232CにはRX、TX、GNDピンしかマイコンでは使わないことが多いです。
通信速度は384,000bpsか、192000bpsがマイコンでは多いです。速度は出ないので気をつけて下さい。
より高速な通信は違う規格で行うのが良いでしょう(例えばUSBとか)。
クラスはSerialPortを使います。ツールボックスでコンポネートです。
追加するとプロパティで機能を設定できるので重要なのは
BaudRateとPortNameです。
BaudRateは通信速度のことです。単位はbpsですので気をつけてください。
PortNameは使用するポートの番号です。デバイスマネージャで要確認です。
追加するとプロパティで機能を設定できるので重要なのは
BaudRateとPortNameです。
BaudRateは通信速度のことです。単位はbpsですので気をつけてください。
PortNameは使用するポートの番号です。デバイスマネージャで要確認です。
methodには
serialPort1.Open();
serialPort1.Close();
で初期化と、閉じです。
serialPort1.PortName = "COM"+textBox1.Text
テキストBOXからCOMポートを変える1文、コムポートは最初から固定でも任意でも可です。ただし、開いてるときにポートを変えないで下さい
serialPort1.Read(データ、データ量);
を使って受信したデータを読めます。他にもByte単位で読むとか、読む量指定とかできる関数があります。
serialPort1.Open();
serialPort1.Close();
で初期化と、閉じです。
serialPort1.PortName = "COM"+textBox1.Text
テキストBOXからCOMポートを変える1文、コムポートは最初から固定でも任意でも可です。ただし、開いてるときにポートを変えないで下さい
serialPort1.Read(データ、データ量);
を使って受信したデータを読めます。他にもByte単位で読むとか、読む量指定とかできる関数があります。
private void serialPort1_DataReceived(object sender, SerialDataReceivedEventArgs e)
を使いました。これはあるデータ量を受け取るたびに割り込みがかかります。
ReceivedBytesThresholdプロパティがDataReceivedを呼び出すデータの量です。
既定値が1だから通信するたびにtrueになるります。なので好きな値に変えておきます。
を使いました。これはあるデータ量を受け取るたびに割り込みがかかります。
ReceivedBytesThresholdプロパティがDataReceivedを呼び出すデータの量です。
既定値が1だから通信するたびにtrueになるります。なので好きな値に変えておきます。
タグ
このページへのコメント
もちろん出来ますが、どこでowlさんが躓いているのか
Posted by kazuyu(管理人) 2010年10月24日(日) 20:59:15分かりませんのでアドバイスをするのは難しいです。
まず最初はハイパーターミナル(ウィンドウズなら)という
通信ソフトを使ってマイコンがデータを送っているか
調べてみたらどうでしょうか・
初めまして。
Posted by owl 2010年10月24日(日) 00:58:30現在、FSR402 という圧力センサーを繋いだArduino UNOとPC間でポート通信を行い、圧力センサー側の値をVisualStudioC#で読み込もうとしているのですが、一向に先に進まず、困っています。
SerialPortコントロールではアナログ入力は読み込めないのでしょうか。