東浦です。 > 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を点灯させたりしますが。。。 で、回答は良いのでしょうか?