![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
現在,マイコン(Mbed)と測定機器間でUART通信を行い,測定機器の測定値をマイコンに取り込もうと,プログラムを作成しています。
測定器の説明書には
STX 『DISP』 CR LF EOT (DISP以外は制御コード)
の順にマイコンからデータを送れば測定値が返ってくると書いてありますが,C言語ではどのように記述すればよいでしょうか?
ためしに
printf('0x02');
printf('0x2c');
printf('0x44');..................
というように順番に送信してみましたが,測定値を取得できませんでした。
PCのVisual C++/CLIでソフトを作成し,測定器とPC間で通信したところ問題なく測定値を取得できました。
マイコンを使用して,外部機器と通信する場合,一般的にはどのようにコードを記述すればよいでしょうか?
すごく初歩的な質問だと思いますが,なにとぞご教授宜しくお願い致します。
No.4ベストアンサー
- 回答日時:
No.1,2です。
以下のサイトを参考にされましたでしょうか。
http://mbed.org/users/okini3939/notebook/Serial_ …
このサイトの「割り込みにより、PCシリアルとp9,p10間で送受信する」というサンプルが参考になるかと思いますが、
マイコンからデータを送信する前に受信の割り込みを許可していますので、同じように修正されてみては如何でしょうか。
また、質問者さんのソースを見ると、変数g[]とdcの初期化、オーバーフローチェック等がされていないようなので、その辺りも見直してみては如何でしょうか。
ご返事が遅くなってしまい申し訳ありません.
プログラムの方に自信がなかったのでプログラムに関してばかり質問していましたが,RS232Cの電圧レベルをTTLに変換することを忘れているだけでした.
ご丁寧に何度もありがとうございました.
No.3
- 回答日時:
No.2です。
たびたび・・。
ソースコードありがとうございます。
追加で申し訳ありませんが、2点ほど確認させてください。
1.sokuteiki と pc の定義部分(構造体でしょうか)も見せてもらっていいですか。(「#include "mbed.h"」は、されていますよね?)
2.以下のサイトにマイコンの仕様が図解されていますが、これの何番のピンに接続していますか?
http://mbed.org/handbook/mbed-NXP-LPC1768
以上です。
ご回答ありがとうございます。
1.Serial PC(USBTX,USBRX);
Serial sokuteiki(p9,p10);
上記のように定義していますが具体的な中身はわかりません......mbed.hもincludeしています。
2. p9にTXをp10にRXを接続しています。
以上,ご確認よろしくお願いいたします。
No.2
- 回答日時:
No.1です。
追加で確認ですが、マイコンと測定機器は、どのように接続されていますか?
もしかして、マイコンUSBポート <-> 測定機器(232C)と接続されていませんか?
それだけでは、マイコン側に電源供給出来ないので、プログラムの実行そのものが出来ませんよ。
この回答への補足
すいません。データ送信部に記載ミスがありました。
proc[0] = 0x2;//STX
proc[1] = 0x44;//D
proc[2] = 0x49;//I
proc[3] = 0x53;//S
proc[4] = 0x50;//P
proc[5] = 0xd;//CR
proc[6] = 0xa;//LF
proc[7] = 0x4;//EOT
for(i = 0;i < 8 ;i++){
sokuteiki.putc(proc[i]);//測定機器にデータ送信
}
ご回答ありがとうございます。
ボーレートなどの通信設定は間違っていません(PCなどとは通信できているので,設定方法は理解出来ているはずです。)
また,接続方法ですが.測定器はRS485で,途中でRS232に変換して,MbedのRXD,TXDのピンに接続しています。
説明不足でした。すいません.....
PCと測定機器間で確認したところ,
測定値の送信要求 (STX 『DISP』 CR LF EOT ) を送り,正常に通信できていれば,
送信要求 + 測定値が返ってくるようです。
また,送信に異常があれば,送信したデータがそのまま返ってくるようです。(わざとプロトコルの規格外のデータを送信して確認)
昨夜テストしていたのですが,Mbedから送信したデータがそのまま返ってくるところまでは確認できました。
以下がそのコードになりPCのターミナルで受信したデータは『244495350da4』(STX 『DISP』 CR LF EOT )となりました。
接続・設定は問題なさそうなのですが,いかんせんプログラムの知識が浅いため,通信のコードがあっているのかも
分からない状態です。
以下に,私が書いたコードを記載いたしますので,なにとぞアドバイスを宜しくお願い致します。
int i;
int dc;
char proc[10];//プロトコルを入れる配列
cahr g[20];//測定機器から受信したデータを入れる配列
int main(){
sokuteiki.baud(19200);//ボーレートを19200
sokuteiki.format(8, Serial::None, 1);//ビット長8:パリティなし,STOP BIT 1
i = 0;
proc[0] = 0x2;//STX
proc[4] = 0x44;//D
proc[5] = 0x49;//I
proc[6] = 0x53;//S
proc[7] = 0x50;//P
proc[8] = 0xd;//CR
proc[9] = 0xa;//LF
proc[10] = 0x4;//EOT
for(i = 0;i < 11 ;i++){
sokuteiki.putc(proc[i]);//測定機器にデータ送信
}
sokuteiki.attach(dev_rx,Serial::RxIrq);//受信割り込みの許可
while(1){
}
}
//受信割り込み
void dev_rx(){
__disable_irq();//受信割り込み禁止
g[dc] = sokuteiki.getc();//測定機器からデータ受信
pc.printf("%x",g[dc]]);//確認用PCに測定機器から受信したデータを送信
dc++;
__enable_irq();//割り込み許可
}
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(データベース) Accessフォームからパラメーターで表示したレコードを指定のExcelのセルへ転送する方法について 2 2022/08/22 18:04
- その他(開発・運用・管理) おんどとりWebStorage APIから温度情報を取得し表示したい 2 2023/08/03 09:53
- 世界情勢 ウクライナへの支援物資で必要な物は? 3 2022/03/27 18:34
- 糖尿病・高血圧・成人病 血糖値測定器付スマートウォッチ 2 2023/04/13 11:24
- 体温計・血圧計 スマートウォッチで血圧測定 2 2022/04/22 22:00
- アンテナ・ケーブル BS4Kでフルハイビジョンの機器は使えますか 2 2023/04/02 14:40
- 化学 助けてください! F4スターの水性ペンキのホルムアルデヒドの数値が4.56ppmで凄く高値でした 3 2023/03/09 02:06
- UNIX・Linux Zabbix監視エージェントをインストールしてもデータを収集できずアクティブにならない 1 2023/02/26 20:25
- Visual Basic(VBA) Accessフォームで全レコードを指定のExcelのセルへ転送し印刷する方法について 2 2022/09/08 18:23
- バッテリー・充電器・電池 モバイルバッテリー容量の記載には嘘が多いと聞きました。 モバイルバッテリー容量を測定できる方法を教え 7 2023/05/02 09:28
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
sims4についてです。 別のパソ...
-
サーバーの定期シャットダウン...
-
WindowsのエクスプローラーでFT...
-
マイクラでコマンド使いたいの...
-
エックスサーバーでhttpd.conf...
-
discordで2人だけのサーバー作...
-
メールサーバーに送信元IPアド...
-
.htaccessでアクセス拒否のこの...
-
ネットワークの構成に困っています
-
お名前ドットコムの共用サーバ...
-
Windows Server 2019 CALについて
-
【QNAP NAS】LANポートについて...
-
Windows server 2022 CALとSQL ...
-
動画を公開してダウンロードさ...
-
WindowsでApache が起動しない
-
ノートPCをサーバーにすること...
-
Windowsのファイルコピーについて
-
【QnapNAS】不良HDDと診断され...
-
TERATERMだけSSH接続できない
-
Apache24起動時のエラー
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
copilotとはなんですか?
-
アメリカでは基本設計、詳細設...
-
アジャイル開発のタスクが定時...
-
Windowsアプリケーション開発で...
-
オフコンかPCサーバーか?
-
【asp.net】パラメータの永続的...
-
システム開発の全体像を学べる...
-
オフコン?
-
8bitマイコンへの移植
-
オフコンって…
-
アプリ開発
-
マイナンバーのシステム開発に...
-
パソコンがこんなに進化してい...
-
【IT】様々なシステムをオープ...
-
オフコンは現在どの程度使われ...
-
iPhoneアプリ開発について[Xcod...
-
OSI参照モデルの各層の役割がわ...
-
opjpeg32.dllの取得
-
.NETとは何ですか?
-
ネットワークTAPについて教えて...
おすすめ情報