Everything

使用例

4回のマスタ送信を行う

 

[GUI設定例]

I2Cバスインタフェース

RIIC2

使用する

機能設定

I2C モード (マスタ)

SCL2

P16

SDA2

P17

 

 

I2CMaster2

 

使用する

 

 

 

ビットレート

10 (kbps)

 

 

 

ノイズフィルタを使用する

使用する

 

 

 

ノイズフィルタ段数選択

1段(1IICφ以下のノイズを除去)

 

 

 

SDA出力遅延を使用する

使用しない

 

 

 

タイムアウト機能有効

使用しない

 

 

 

マスタアービトレーションロスト検出許可

使用する

 

 

 

NACK送信アービトレーションロスト検出許可

使用しない

 

 

 

NACK受信転送中断許可

使用する

TXI 優先順位

レベル15

 

 

 

RXI 優先順位

レベル15

TEI2

 EEI2 優先順位 (グループBL1) (ICUの優先度設定をしてください)

タイムアウト割り込み許可 (TMOI)

使用しない

アービトレーションロスト割り込み許可 (ALI)

使用する

スタートコンディション検出割り込み許可 (STI)

使用する

ストップコンディション検出割り込み許可 (SPI)

使用する

NACK受信割り込み許可 (NAKI)

使用する

送信完了

使用する

 

 

 

受信完了

使用する

 

 

 

エラー

使用する

 

割り込みコントローラ

ICU

使用する

 

 

Group

 

使用する

 

 

 

グループBL1

使用する

グループBL1 優先順位

レベル15

 

 

 

 

 

[API設定例]

r_cg_main.c

/* Start user code for global. Do not edit comment generated here */

extern volatile uint8_t g_riic2_tx_buf[2];

/* End user code. Do not edit comment generated here */

 

void main(void)

{

       R_MAIN_UserInit();

       /* Start user code. Do not edit comment generated here */

       /* Start the RIIC2 Bus Interface */

       R_RIIC2_Start();

 

       /* Send RIIC2 data to slave device */

       R_RIIC2_Master_Send(0x00A0, (uint8_t *)g_riic2_tx_buf, 2U);

 

       while (1U)

       {

              ;

       }

       /* End user code. Do not edit comment generated here */

}

 

 

r_cg_riic_user.c

/* Start user code for global. Do not edit comment generated here */

volatile uint8_t g_riic2_tx_buf[2];

volatile uint8_t g_riic2_tx_cnt;

/* End user code. Do not edit comment generated here */

 

void R_RIIC2_Create_UserInit(void)

{

       /* Start user code. Do not edit comment generated here */

       g_riic2_tx_cnt = 0U;

       g_riic2_tx_buf[0] = g_riic2_tx_cnt;

       g_riic2_tx_buf[1] = 0x01;

       /* End user code. Do not edit comment generated here */

}

 

static void r_riic2_callback_transmitend(void)

{

       /* Start user code. Do not edit comment generated here */

       if ((++g_riic2_tx_cnt) < 4U)

       {

              g_riic2_tx_buf[0] = g_riic2_tx_cnt;

              g_riic2_tx_buf[1] += 0x01;

 

              /* Send RIIC2 data to slave device */

              R_RIIC2_Master_Send(0x00A0, (uint8_t *)g_riic2_tx_buf, 2U);

       }

       else

       {

              /* Stop the RIIC2 Bus Interface */

              R_RIIC2_Stop();

       }

       /* End user code. Do not edit comment generated here */

}