現在,マイコン(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で質問しましょう!
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
オフコンかPCサーバーか?
-
笠と傘のちがいを教えてくださ...
-
ピラミッドはなぜ沈まないので...
-
潜水艦はなぜ水圧で潰れないの?
-
「~時」と「~時に」の違いに...
-
敬具を書く位置
-
ドラえもんなどで出てくる秘密...
-
三国時代の軍礼
-
頭脳労働と肉体労働はどちらが...
-
【台湾TSMS】が日本の鹿児島に2...
-
Googleの起源は
-
英文和訳をお願いします。
-
帝国海軍の駆逐艦に菊の御紋が...
-
大洪水を起こす雨雲をコントロ...
-
職業鑑・勤労観とは?
-
宗教がないと貪る事も労働にな...
-
海上自衛隊の戦闘艦が現在の 護...
-
労働するとは堕落しない事では...
-
高いところから落ちるときに傘...
-
何度もすみません。 小論文添削...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
アメリカでは基本設計、詳細設...
-
アジャイル開発のタスクが定時...
-
オフコンは現在どの程度使われ...
-
マイコンと接続するBluetoothモ...
-
ネットワークTAPについて教えて...
-
Windowsアプリケーション開発で...
-
copilotとはなんですか?
-
システムエンジニアとプログラ...
-
iPhoneアプリ開発について[Xcod...
-
C言語を用いたマイコンと計測機...
-
システム開発の全体像を学べる...
-
オブジェクト指向分析・設計(O...
-
OSI参照モデルの各層の役割がわ...
-
「システム開発」「アプリケー...
-
H8の開発環境について
-
delphiとHTML
-
初心者向けマイコンボード
-
mixiアプリの見積書の書き方
-
自動車のエンジンコントロール...
-
大学生が抱える問題とアプリ開...
おすすめ情報