CCAN_MSG_OBJ_T send_obj; SystemCoreClockUpdate(); Board_Init(); set_pinmux(); //DEBUGOUT(WelcomeMenu); /* Set CCAN peripheral clock under 100Mhz for working stable */ Chip_Clock_SetBaseClock(CLK_BASE_APB3, CLKIN_IDIVC, true, false); Chip_CCAN_Init(LPC_C_CAN0); Chip_CCAN_SetBitRate(LPC_C_CAN0, 500000); Chip_CCAN_EnableInt(LPC_C_CAN0, (CCAN_CTRL_IE | CCAN_CTRL_SIE | CCAN_CTRL_EIE)); send_obj.id = CCAN_TX_MSG_ID; send_obj.dlc = 4; send_obj.data[0] = 'A'; send_obj.data[1] = 'B'; send_obj.data[2] = 'C'; send_obj.data[3] = 'D'; Chip_CCAN_Send(LPC_C_CAN0, CCAN_MSG_IF2, FALSE, &send_obj); <----- STUCK HERE Chip_CCAN_ClearStatus(LPC_C_CAN0, CCAN_STAT_TXOK); |
Chip_Clock_SetDivider(CLKIN_IDIVC, CLKIN_MAINPLL, 6); Chip_Clock_EnableBaseClock(CLK_BASE_APB3); Chip_Clock_EnableBaseClock(CLK_BASE_APB1); Chip_Clock_SetBaseClock(CLK_BASE_APB3, CLKIN_IDIVC, true, false); Chip_Clock_SetBaseClock(CLK_BASE_APB1, CLKIN_IDIVC, true, false); |
static void set_pinmux(void) { #if defined(BOARD_NXP_LPCXPRESSO_4337) Chip_SCU_PinMuxSet(0x3, 1, (SCU_MODE_INACT | SCU_MODE_INBUFF_EN | SCU_MODE_FUNC2)); /* CAN RD */ Chip_SCU_PinMuxSet(0x3, 2, (SCU_MODE_INACT | SCU_MODE_FUNC2)); /* CAN TD */ #else #warning "No pin muxing set for this board" #endif } |
STATIC INLINE uint32_t Chip_CCAN_GetTxRQST(LPC_CCAN_T *pCCAN) { return pCCAN->TXREQ1 | (pCCAN->TXREQ2 << 16); } |
uint32_t freq; CCAN_MSG_OBJ_T send_obj; SystemCoreClockUpdate(); Board_Init(); set_pinmux(); DEBUGOUT(WelcomeMenu); freq = Chip_Clock_GetBaseClocktHz(CLK_BASE_APB3); // FREQ IS 204 MHz HERE /* Set CCAN peripheral clock under 50Mhz for working stable */ Chip_Clock_SetBaseClock(CLK_BASE_APB3, CLKIN_IDIVE, TRUE, FALSE); freq = Chip_Clock_GetBaseClocktHz(CLK_BASE_APB3); // Frequency verification // FREQ IS 12 MHZ HERE Chip_CCAN_Init(LPC_C_CAN0); Chip_CCAN_SetBitRate(LPC_C_CAN0, 50000); Chip_CCAN_EnableInt(LPC_C_CAN0, (CCAN_CTRL_IE | CCAN_CTRL_SIE | CCAN_CTRL_EIE)); send_obj.id = CCAN_TX_MSG_ID; send_obj.dlc = 2; send_obj.data[0] = 'A'; send_obj.data[1] = 'B'; Chip_CCAN_Send(LPC_C_CAN0, CCAN_MSG_IF1, false, &send_obj); // <--- ALWAYS STUCK HERE |
Chip_Clock_SetBaseClock(CLK_BASE_APB3, CLKIN_IDIVE, true, false); |
/* Set CCAN peripheral clock under 100Mhz for working stable */ |