SMR00 = 0x0022;
SCR00 = 0x8297;
SDR00 = 0xce00;
UART0の設定フロー(3/4)
RxD端子のノイズ・フィルタの設定
エラー・フラグのクリア
入出力端子の設定 チャネル1の設定
・動作モードの設定
・通信動作の設定
・転送クロックの設定
チャネル0の出力の設定
1
return
受信
受信チャネルの動作モードの設定(1/4)
シリアル・モード・レジスタ01(SMR01)
動作クロックの選択UART通信モードでは設定固定
クロック0=2MHzクロック1=2MHz
クロック0=2MHz
受信チャネルの動作モードの設定(2/4)
シリアル・モード・レジスタ01(SMR01)
スタート・トリガ要因の選択受信チャネルの動作モードの設定(3/4)
シリアル・モード・レジスタ01(SMR01)
受信データのレベル反転の設定受信チャネルの動作モードの設定(4/4)
シリアル・モード・レジスタ01(SMR01)
割り込み要因の選択受信チャネルの通信動作の設定(1/3)
シリアル通信動作設定レジスタ01(SCR01)
動作モードの設定UART受信モードでは設定固定
受信チャネルの通信動作の設定(2/3)
シリアル通信動作設定レジスタ01(SCR01)
エラー割り込み信号のマスク可否の選択受信チャネルの通信動作の設定(3/3)
シリアル通信動作設定レジスタ01(SCR01)
パリティ・ビットの設定
データ転送順序の選択
ストップ・ビットの設定
データ長の設定偶数パリティ
LSBファースト
ストップビット = 1ビット データ長 = 8ビット受信チャネルの転送クロックの設定
シリアル・データ・レジスタ01(SDR01)
動作クロックの分周設定1 1 0 0 1 1 1 f
MCK/208 f
MCK= 2MHz
2MHz/208 ≒ 9600Hz
UART0の設定関数(3/4)
RxD端子のノイズ・フィルタの設定
エラー・フラグのクリア
入出力端子の設定 チャネル1の設定
・動作モードの設定
・通信動作の設定
・転送クロックの設定
チャネル0の出力の設定
1
return
NFEN0 |= 0x01;
SIR01 = 0x0007;
SMR01 = 0x0122;
SCR01 = 0x4697;
SDR01 = 0xce00;
SO0 |= 0x0001;
SOL0 |= 0x0000;
SOE0 |= 0x0001;
PM1 |= 0x02;
P1 |= 0x04;
PM1 &= 0xfb;
} void R_UART0_Create(void) {
ST0 |= 0x0003;
STMK0 = 1;
STIF0 = 0;
SRMK0 = 1;
SRIF0 = 0;
SREMK0 = 1;
SREIF0 = 0;
STPR10 = 1;
STPR00 = 1;
SRPR10 = 1;
SRPR00 = 1;
SREPR10 = 1;
SREPR00 = 1;
SMR00 = 0x0022;
SCR00 = 0x8297;
SDR00 = 0xce00;
UART0の設定フロー(4/4)
R_UART0_Create()
チャネルの動作停止
割り込みの禁止
チャネル0の設定
・動作モードの設定
・通信動作の設定
・転送クロックの設定 割り込み要求フラグのクリア
割り込み優先度の設定
1
RxD端子のノイズ・フィルタの設定
エラー・フラグのクリア
入出力端子の設定 チャネル1の設定
・動作モードの設定
・通信動作の設定
・転送クロックの設定
チャネル0の出力の設定
1
return
RxD端子のノイズ・フィルタの設定
ノイズ・フィルタ許可レジスタ0(NFEN0)
ノイズ・フィルタの使用可否RxD0端子
UART受信モードでは設定固定
エラー・フラグのクリア
シリアル・フラグ・クリア・トリガ・レジスタ01(SIR01)
チャネルの各エラー・フラグのクリア受信チャネル
(チャネル1)
チャネル0の出力の設定(1/2)
シリアル出力許可レジスタ0(SOE0)
シリアル通信動作の出力許可/停止を設定
シリアル出力レジスタ0(SO0)
シリアル出力のバッファ・レジスタユニット0のチャネル0
SOE00=1のときの書き換えは無視
チャネル0の出力の設定(2/2)
シリアル出力許可レジスタ0(SOE0)
シリアル通信動作の出力許可/停止を設定ユニット0のチャネル0
シリアル出力レベル・レジスタ0(SOL0)
データ出力レベルの反転を設定する入出力端子の設定
ポート・レジスタ(P1)
ポートの出力ラッチの値を設定
ポート・モード・レジスタ(PM1)
ポートの入出力モードの選択TxD端子
TxD端子 RxD端子
UART0の設定関数(4/4)
RxD端子のノイズ・フィルタの設定
エラー・フラグのクリア
入出力端子の設定 チャネル1の設定
・動作モードの設定
・通信動作の設定
・転送クロックの設定
チャネル0の出力の設定
1
return
void R_UART0_Create(void) {
ST0 |= 0x0003;
STMK0 = 1;
STIF0 = 0;
SRMK0 = 1;
SRIF0 = 0;
SREMK0 = 1;
SREIF0 = 0;
STPR10 = 1;
STPR00 = 1;
SRPR10 = 1;
SRPR00 = 1;
SREPR10 = 1;
SREPR00 = 1;
SMR00 = 0x0022;
SCR00 = 0x8297;
SDR00 = 0xce00;
NFEN0 |= 0x01;
SIR01 = 0x0007;
SMR01 = 0x0122;
SCR01 = 0x4697;
SDR01 = 0xce00;
SO0 |= 0x0001;
SOL0 |= 0x0000;
SOE0 |= 0x0001;
PM1 |= 0x02;
P1 |= 0x04;
PM1 &= 0xfb;
}
UART0の設定関数のコード生成(1/3)
UART0の設定関数のコード生成(2/3)
転送完了割り込み バッファ空き割り込み
UART0の設定関数のコード生成(3/3)
mainのフロー
main
R_UART0_Receive R_UART0_Start
HALTモードへ移行
受信割り込み禁止
受信エラー検出?
受信エラーを判定し、
対応したデータの送信
Yes
No
受信データを判定し、
対応したデータの送信
受信割り込み許可
R_UART0_Receive
オーバラン・エラー?
UART0 動作開始関数
void R_UART0_Start(void) {
STIF0 = 0;
ドキュメント内
スライド 1
(ページ 33-55)