神野です。 Fri, 11 Jul 2003 16:43:17 +0900 (JST) ごろに <4585489.1057909397062.ishida@xxxxxxxxx> の "[H8-ML(3624)] Re: AKI-H8/3069Fでシリアル通信" のメールで ishida@xxxxxxxxx さんは書きました。 > どうも、データを受信する際に4byte以上のものを受信しようと > すると、プログラムが固まってしまっているようです。 > > 機器からの戻りデータが7byteなので、これを受信するようにル > ープを回しているのですが、ここで7byteをゲットできないでい > てループから抜けれなくなっています。 それだけだと、「ソフトにバグがあるんじゃない?」としか 言えないのでは…? すべて自前で書いたものなのか、どこかのサンプルを使っているのか、 あるいはH8/OSなのか。 RXI割り込みで受信しているのか、RDRFをポーリングしているのか。 そういう前提でも無いことには。 3069Fは使ったことがなく「たぶん同じだろう」との推測ですが、 SSRのOER,FER,PERはクリアしていますか? これらのエラーは普通ならめったに発生するものではありませんが、 一度発生してしまうとクリアしない限り以降の受信はできません。 > これは機器からのデータをH8/3069F側が受信できないというこ > とになるのでしょうか? 機器側がデータを出しているかどうかは、H8側のRxDをオシロで 観測すればわかるでしょう。 つなぎかえれば動くんでしょうから、「出してない」ってことは ないでしょうけど、もしかしたらH8側から機器に対して フロー制御で「送ってくるな」と言っている可能性もあります。 # そのフロー制御をしているかどうかも不明なんですが。 > クロックが遅いとか、ボーレートが早す > ぎるとかって問題になるのでしょうか? クロック、ボーレイトが原因で誤差があるとしても、まったく受信 できなくなる可能性は低いのでは? あるとしたら、それが原因で発生した「各種エラーをクリアしてない」 という可能性でしょうか。 -- 神野健吾 <kengo@xxxxxxxxxxxx>