掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
キャリッジリターン付のデータ送信 (ID:68693)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
相変わらず、http://www.alab.t.u-tokyo.ac.jp/~bond/doc/rs232c.html に記載されているRC232C制御のプログラムをいじくっております。 http://madia.world.coocan.jp/cgi-bin/Vcbbs/wwwlng.cgi?print+200807/08070008.txt で教えて頂いた続きになるのですが、 以下のソースでRS232Cから「AIUEOaiueo」を出力することはできました(受信側のPCに「AIUEOaiueo」が表示された)。 void CSerialComTestDlg::OnSend() { char buf[MAX_COM_SIZE]; strcpy(buf, "AIUEOaiueo"); int len; len=strlen(buf); buf[len++]=0x0d; //CR buf[len++]=0x0a; //LF buf[len]='\0'; //NULL com1.Send(buf, len); } しかし、最終的には「AIUEOaiueo[CR]」という出力を目的としていましたので、さらに以下のように書き換えましたが、 void CSerialComTestDlg::OnSend() { char buf[MAX_COM_SIZE]; strcpy(buf, "AIUEOaiueo"); int len; len=strlen(buf); buf[len++]=0x0d; //CR com1.Send(buf, len); } exeファイルのOnSendのボタンを押すとDebug Assertion Failed!というメッセージが出てきてしまいます。 一方、 void CSerialComTestDlg::OnSend() { char buf[MAX_COM_SIZE]; strcpy(buf, "AIUEOaiueo"); int len; len=strlen(buf); buf[len++]=0x0d; //CR buf[len]='\0'; //NULL com1.Send(buf, len); } とすると、受信側のPCには「AIUEOaiueo」が表示されました。しかし、RS232Cを制御対象の実機に繋げると、実機が「AIUEOaiueo[CR]」が指し示す動作をしません。つまり、「AIUEOaiueo[CR]」の[CR]部分がうまく出力されてないのではないかと思います。。。上記のソースをどのように書き換えれば、「AIUEOaiueo[CR]」という出力が可能になりますでしょうか?また、strcpy(buf, "AIUEOaiueo");において、ヌル文字はbuf[10]に付け加えられているのでしょうか?さらに、私が示した一番上のソースの送信データは「AIUEOaiueo[CR][LF][NULL]」になっているのでしょうか? 長々と書いてしまいましたが、宜しくお願い致します。
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.