RXには0~3、5~6までの計6つのSCIが搭載されている。
このうち一つを使用してPCから受けたデータをそのままPCに返してみるループバックプログラムを作成する。
ポートからの出力は3.3VなのでRS-232Cレベルに変換するIC(ADM3202など)を使用しなければならない。
void main(void)
{
int i;
CINIT;
SYSTEM.SCKCR.BIT.ICK=0; /*コアクロック96MHz*/
SYSTEM.SCKCR.BIT.PCK=1; /*周辺機器クロック PCLK=48MHz*/
/* SCI5 設定開始 */
SYSTEM.MSTPCRB.BIT.MSTPB26=0; /* SCI5 wakeup */
IEN(SCI5,RXI5)=1; /* 割り込み要求許可 */
IPR(SCI5,RXI5)=10; /* 割り込み優先レベル */
//SMR設定開始
SCI5.SMR.BIT.CM=0; /* SCI動作モード設定 1:クロック同期モード 0:調歩同期(非同期)モード */
SCI5.SMR.BIT.CKS=0; /* SCIクロック選択 0:1/1 1:1/4 2:1/16 3:1/64 */
SCI5.SMR.BIT.CHR=0; /* キャラクタ長選択 0:8bit 1:7bit */
SCI5.SMR.BIT.STOP=0; /* ストップビット長選択 0:1ストップビット 1:2ストップビット */
SCI5.SMR.BIT.PE=0; /* パリティ許可設定 0:パリティなし 1:パリティ付加・チェック */
SCI5.SMR.BIT.PM=0; /* パリティモード設定 0:偶数パリティ 1:奇数パリティ */
/*SCIクロック設定*/
SCI5.BRR=155; /*ボーレート9600bps*/
/*SCI受信許可*/
for(i=0;i<800000;i++); /* ちょっと待つ */
SCI5.SCR.BYTE=0xf0; /* 送受信開始・割り込み許可 */
PORTC.ICR.BIT.B2=1; /* 入力バッファ設定 入力端子として使用の場合は1 */
PORTC.DDR.BIT.B3=1; /* 出力端子設定 出力端子として使用の場合は1 */
/* SCI5 設定終了 */
while(1);
}500行目前後~
// SCI5 RXI5
void Excep_SCI5_RXI5(void){
SCI5.TDR = SCI5.RDR; /* 受信データをそのまま送信する */
}