東浦です。
> int main(void)
> {
> volatile unsigned int data;
> ioinit();
> while(1){
> data=inch();
> if(data=='\r')
> outcrlf();
> outch(data);
> }
> }
>
> 手でキー入力する分には、うまくいきます。
> ところが、ハイパーターミナルでテキストファイル送信をすると
> 受信エラーが発生するようです。
> テキストファイルは、1行10文字の6行文字列を用意しました。
> (改行は\r\aなので、\aを読み飛ばす必要があるかも?)
> 何度転送しても、常に、同じ場所が受信エラーになっています。
> 原因は何が考えられるでしょうか?
<原因>
受信1文字(\r)に対して3文字送信を行いますが、送信が完了する
まで受信処理が行われないため、パソコン側より送られて来るであ
ろう3文字のデータを受信できずオーバーランエラーが発生してい
ると思います。
(多分次の行の最初の文字のデータで発生していると思います。)
間違っていたら、他の方フォロー願います。
> また、エラー発生時の対処はどうすればいいのでしょうか?
通信でのエラーフラグの状態をチェックしてフラグをクリアして、
受信待ち処理に移る。
仕様によっては、受信エラーを起こした旨を送信したり、受信エラー
のLEDを点灯させたりしますが。。。
で、回答は良いのでしょうか?