こんにちわ > void init_sci2(void){ > int i; > volatile unsigned char tmp; > > SCI2.SCR.BYTE = 0x00; // 0000 0000 // 設定終わるまで送 > 受信禁止 > // スマートカードインタフェースを使用しない > SCI2.SCMR.BIT.SMIF = 0; > //シリアルモードレジスタ > SCI2.SMR.BYTE=0x00; // 0000 0000 > // シリアルボーレートレートレジスタ > //SCI2.BRR=23; // = N(Err rate 0% 19.2kbps) > SCI2.BRR = 47; // = N(Err rate 0% 9600kbps) > > // 1bit以上待つ > for(i=0;i<50;i++); > > // シリアル通信ポート(Aポート)の入出力の設定 > PA.DDR = 0x0A; // 0000 1010 A1:TX A2:RX A3:LED > SCI2.SSR.BIT.TDRE=0; // clear(set 0) only writable > > SCI2.SCR.BYTE = 0x30; // 0011 0000 通信を許可 > > return; > の > SCI2.SSR.BIT.TDRE=0; // clear(set 0) only writable を削除してみてください。 SCI2.SSR.BIT.TDRE=1になる条件は、SCR(TE)=0を設定するときなので、 この行があると、sci2_tx実行時に、TDREが1になっていないと思います。 上田