R8C/M36シリーズで、UART0を使用して、RS232C通信を行っていますが、たまにオーバーランエラーが発生します。
メインクロックは20MHzで、ボーレートは115200bpsです。
受信データの取込は、以下の割込み関数内で行っています
割り込みを処理を行う前、またはデータ読み込み前に何か設定することはあるのでしょうか?
また、通信速度が速いとオーバーランエラーは、まれに発生することはあるのでしょうか?
だれか教えてください。
//割り込みは常に許可
#pragma interrupt _uart0_receive(vect=18)void _uart0_receive(void){
bRecvData.word = u0rb; //受信データ読み込み
if( bRecvData.byte.high & 0xF0){
//エラー判定 エラー状態の場合は、必ずオーバーランエラーのフラグが立っている。
}
現状は、多重割り込みをしないということで、割り込み関数には/Eは使用していません。受信割込み処理のみに、/Bを使用して高速化して、オーバーランエラーはでていません。