こんばんは、あいらんどです。 > while (TXRDY==0); > DATAto8251=mychar; > while (TXRDY==1); > 送信バッファと送信シフトレジスタが空の時に 最初の1バイト目を書き込んだ後、すぐにステータスレジスタ を読みに行った時、TXRDY==1の状態を通り越してしまいTXRDY==0に なっている可能性がありそうですね。 それにデータ書き込み−ステータス読み出しの間に割り込みが入る ことも考慮しなくてはなりません。 その場合は3ステップ目で永久ループになっちゃいます。