お世話になります、上田様。木村です。 > この行があると、sci2_tx実行時に、TDREが1になっていない と思います。 削除して動作させてみましたが、変化ありませんでした。 --------------------------------------- ROMに書き込んで動作させていましたが、書き込み回数が 気になりだしため、シミューレータで動作させようと 思います。歩調同期シリアル通信はシミュレータで 対応しているでしょうか?(実際やってみると データ送信関数内で止まります。止まる原因が プログラムなのか、シミューレータ未対応なのか 判別できません) よろしく御願いします。 > こんにちわ > > > 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になっていない と思います。 > > 上田 > > > > >