SCIモジュールを使ったUART送信処理について

e2studioにてRX660とGCCコンパイラを使用して開発を行っているのですが

SCIの送信割り込みが実行されず悩んでいます。

初めてルネサスのマイコンを使っているため、初歩的なミスをしているかもしれませんが教えていただきたいです。

スマートコンフィギュレータのコンポーネントよりConfig_SCI0を追加し自動生成を行い生成された、r_Config_SCI0_transmit_interrupt()関数が実行されません。

R_Config_SCI0_Serial_Send()関数にて割り込み等の設定を行っているようですが他に設定するべきことはあるのでしょうか。

SCIの初期化処理として、R_Config_SCI0_Start()関数を実行後にR_Config_SCI0_Serial_Send()関数を実行しております。

MD_STATUS R_Config_SCI0_Serial_Send(uint8_t * const tx_buf, uint16_t tx_num)
{
MD_STATUS status = MD_OK;

if (1U > tx_num)
{
status = MD_ARGERROR;
}
else if (0U == IEN(SCI0, TXI0))
{
status = MD_ERROR;
}
else
{
gp_sci0_tx_address = tx_buf;
g_sci0_tx_count = tx_num;
IEN(SCI0, TXI0) = 0U;
SCI0.SCR.BYTE |= 0xA0U;

/* Set TXD0 pin */
PORT2.PMR.BYTE |= 0x01U;
IEN(SCI0, TXI0) = 1U;

}

return (status);
}

  • フォーラム管理人です。
    本件はRX関連のようですので、RXフォーラムへ移動させました。

    よろしくお願いします。

  • わわいです

    RXで割り込みを使おうとする場合、割り込みコントローラ(ICU)の設定も必要となります

    IPRレジスタで当該割り込みの割り込みレベルを設定

    IERレジスタで当該割り込みの割り込みイネーブルを設定

    必要とあればIRレジスタで当該割り込み要求をリセット

    など。

    デバッガで、SCI送信ルーチンで実行を止め、上記各レジスタの値が想定どおりとなっているか確認しましょう。