RX231 シリアル0の受信割り込みが発生しません (北斗電子製評価ボード:R5F52318AxFP)

いつもお世話になっております。

RX231 北斗電子製評価ボードのセットアップを行っているのですが『シリアル0の受信割り込みが発生しません』

ご教授いただけますと幸いです。(プロジェクトを新規で作成し、スマートコンフィグレータで生成されたコードを使用しております(CS+/E2Lite使用))

 

(PCのシリアル通信ソフトからデータを送信しているのに)自動生成されたr_Config_SCI0_transmit_interrupt()に入りません。

※PCからデータ送信されている事は他の開発ボード(Arduino)とつなげてみて受信できる事を確認済。

 

#if FAST_INTERRUPT_VECTOR == VECT_SCI0_TXI0
#pragma interrupt r_Config_SCI0_transmit_interrupt(vect=VECT(SCI0,TXI0),fint)
#else
#pragma interrupt r_Config_SCI0_transmit_interrupt(vect=VECT(SCI0,TXI0))
#endif
static void r_Config_SCI0_transmit_interrupt(void)

 

 

●わかっている事

①自動生成されたR_Systeminit()が呼ばれ、R_Config_SCI0_Create()内でシリアル0の設定およびピン設定(27,28)はされている

/*--------------------------------------------------------*/

void R_Systeminit(void)
{
/* Enable writing to registers related to operating modes, LPC, CGC and software reset */
SYSTEM.PRCR.WORD = 0xA50FU;

/* Enable writing to MPC pin function control registers */
MPC.PWPR.BIT.B0WI = 0U;
MPC.PWPR.BIT.PFSWE = 1U;

/* Initialize clocks settings */
R_CGC_Create();

/* Set peripheral settings */
R_Config_SCI0_Create();

/* Register undefined interrupt */
R_BSP_InterruptWrite(BSP_INT_SRC_UNDEFINED_INTERRUPT,(bsp_int_cb_t)r_undefined_exception);

/* Disable writing to MPC pin function control registers */
MPC.PWPR.BIT.PFSWE = 0U;
MPC.PWPR.BIT.B0WI = 1U;

/* Enable protection */
SYSTEM.PRCR.WORD = 0xA500U;
}

/*--------------------------------------------------------*/

void R_Config_SCI0_Create(void)
{
/* Cancel SCI stop state */
MSTP(SCI0) = 0U;

/* Set interrupt priority */
IPR(SCI0,TXI0) = _0F_SCI_PRIORITY_LEVEL15;

/* Clear the control register */
SCI0.SCR.BYTE = 0x00U;

/* Set clock enable */
SCI0.SCR.BYTE = _00_SCI_INTERNAL_SCK_UNUSED;

/* Clear the SIMR1.IICM, SPMR.CKPH, and CKPOL bit, and set SPMR */
SCI0.SIMR1.BIT.IICM = 0U;
SCI0.SPMR.BYTE = _00_SCI_RTS | _00_SCI_CLOCK_NOT_INVERTED | _00_SCI_CLOCK_NOT_DELAYED;

/* Set control registers */
SCI0.SMR.BYTE = _01_SCI_CLOCK_PCLK_4 | _00_SCI_MULTI_PROCESSOR_DISABLE | _00_SCI_STOP_1 | _00_SCI_PARITY_DISABLE |
_00_SCI_DATA_LENGTH_8 | _00_SCI_ASYNCHRONOUS_OR_I2C_MODE;
SCI0.SCMR.BYTE = _00_SCI_SERIAL_MODE | _00_SCI_DATA_INVERT_NONE | _00_SCI_DATA_LSB_FIRST |
_10_SCI_DATA_LENGTH_8_OR_7 | _62_SCI_SCMR_DEFAULT;
SCI0.SEMR.BYTE = _00_SCI_BIT_MODULATION_DISABLE | _10_SCI_8_BASE_CLOCK | _00_SCI_NOISE_FILTER_DISABLE |
_00_SCI_BAUDRATE_SINGLE | _00_SCI_LOW_LEVEL_START_BIT;

/* Set bit rate */
SCI0.BRR = 0x0AU;

/* Set RXD0 pin */
MPC.P21PFS.BYTE = 0x0AU;
PORT2.PMR.BYTE |= 0x02U;

/* Set TXD0 pin */
MPC.P20PFS.BYTE = 0x0AU;
PORT2.PODR.BYTE |= 0x01U;
PORT2.PDR.BYTE |= 0x01U;

R_Config_SCI0_Create_UserInit();

}

 

②main()で呼んだR_Config_SCI0_Start()にもちゃんときており、ポーリングもちゃんとされている。

void R_Config_SCI0_Start(void)
{
/* Clear interrupt flag */
IR(SCI0,TXI0) = 0U;
IR(SCI0,RXI0) = 0U;

/* Enable SCI interrupt */
IEN(SCI0,TXI0) = 1U;
IEN(SCI0,TEI0) = 1U;
IEN(SCI0,RXI0) = 1U;
IEN(SCI0,ERI0) = 1U;
}

 

 

Parents
  • bunbunさん、こんにちは。NoMaYです。

    今回は、それを敢えて(というか、やむを得ず、というべきな事情で)呼ばないようにしていた場合の案件、ということですね。私の、ちょっと待った、は、ここまでです。どうも、おじゃましました。

    >(コード生成で吐き出された受信ロジックは、目的のシステム要件にはあわない為
    > r_Config_SCI0_transmit_interrupt()やR_Config_SCI0_Serial_Receive()は使用しない予定でして。。。)

  • NoMaYさん、こんにちわ。

    いつもご教授ありがとうございます。
    また宜しくお願い致します。
Reply Children
No Data