(toppers-etrobo 153) Re: EV3RT UART受信機能についてお教えください

Yutaka Matsubara yutaka @ ertl.jp
2020年 11月 9日 (月) 14:29:53 JST


Akiyuki さま

名古屋大学の松原と申します。

対応が遅くなりましてすみません。
こちらで調査をしていますので,もう少々お時間をください。

ちなみに,アプリケーションのビルド環境(OS,コンパイラのバージョン)と実行方法(スタンドアローン形式か動的ローディング方式)の情報を,可能でしたらお教え頂けますでしょうか?

P.S.
楽しい作品を沢山作られてますね。すばらしいです。

松原豊/名古屋大学
2020年10月20日 23:22 +0900、karakuri legotechnic <legokarakuri @ gmail.com> のメール:
> TOPPERS ETロボコンのみなさま
>
> 初めて投稿いたします。
> Akiyukiと申します。
> 趣味でEV3のロボットを作っています。
> https://akiyuki.jp/works/1713
> https://www.youtube.com/watch?v=T2uEUBoGxxo
>
> EV3RTのUART通信機能を使おうとしているのですが、下記現象があり困っています。
>
>
> 現象
> ev3_serial_open_file(EV3_SERIAL_UART)でUARTポートを開くと、受信した内容が自動で送信側にエコーする。
> 受信を継続しているとUARTの受信がフリーズする。
>
>
> 現象を確認した環境条件
> (1)EV3RT1.0「periodic-task」サンプルプログラムのapp.cのmain_taskを添付のものに差し替え、UARTで受け取った文字列をLCDに表示するプログラムに変更。
> void main_task(intptr_t unused) {
>     static FILE     *uart = NULL;
>     int count=0;
>     char str[100],lcdstr[100];
>     uart = ev3_serial_open_file(EV3_SERIAL_UART);
>     while(1){
>         if(fgets(str, 11, uart) != NULL){
>             count++;
>             sprintf(lcdstr, "str=%s count=%d", str,count);
>             ev3_lcd_draw_string(lcdstr,0,70);
>         }
>     }
> }
> (2)PCのUSBポートとEV3のポート1をAE-TTL-232R経由で接続
> (3)PCからSerialDebuggerで1000ms毎に10文字の文字列を送る。
> (4)LCDに受け取った文字列と受信回数が表示される。また、エコーした文字列がSerialDebuggerに表示される。
> (5)数百秒~数千秒たつと文字列の受信が停止する。同時にエコーも止まる。受信が停止するまでの時間は毎回異なる。
>
>
> 備考
> ※文字列の送信間隔を1000msから短縮(100ms)するとより早く(数十秒~数百秒)でフリーズする
> ※UARTの送信元はPCでも他のEV3でも同じ結果になる
> ※フリーズするのはUART部分のみで、プログラムの他の部分は継続して動作する。
>
>
> フリーズの原因を確認していただけませんでしょうか。
> エコーを無効化することはできませんでしょうか。
>
> 回答が頂けましたら幸いです。
> よろしくお願いいたします。
>
> Akiyuki
> legokarakuri @ gmail.com
>
-------------- next part --------------
HTMLの添付ファイルを保管しました...
URL: <http://www.toppers.jp/pipermail/etrobo/attachments/20201109/a5379842/attachment.html>


ETROBO メーリングリストの案内