在线时间1 小时
UID17151
注册时间2017-1-11
NXP金币0
该用户从未签到
新手上路

- 积分
- 15
- 最后登录
- 2017-2-27
|
大家好,
S32K CAN总线参考NXP的工程目前能发送一个报文 和 接收 一个报文. 但是现在接收多个报文就是搞不定. 1. 例如, MCU需要接收所有的报文, 初始化怎么配置. 怎么中断接收.
2. 例如, MCU需要接收20个报文, 初始化怎么配置, 怎么中断接收.
flexcan_state_t can0_State;
const flexcan_user_config_t can0_InitConfig0 = {
.fd_enable = false,
.pe_clock = FLEXCAN_CLK_SOURCE_SYS,
.max_num_mb = 10,
.num_id_filters = FLEXCAN_RX_FIFO_ID_FILTERS_16,
.is_rx_fifo_needed = false,
.flexcanMode = FLEXCAN_NORMAL_MODE,
.payload = FLEXCAN_PAYLOAD_SIZE_8,
.bitrate = {
.propSeg = 7,
.phaseSeg1 = 4,
.phaseSeg2 = 1,
.preDivider = 6,
.rJumpwidth = 1
},
.bitrate_cbt = {
.propSeg = 7,
.phaseSeg1 = 4,
.phaseSeg2 = 1,
.preDivider = 6,
.rJumpwidth = 1
},
.transfer_type = FLEXCAN_RXFIFO_USING_INTERRUPTS
};
void FlexCAN0_Config(void)
{
TJA1043_OperatingMode(TJA104x_Normal_Mode);
FLEXCAN_DRV_Init(FSL_CAN0, &can0_State, &can0_InitConfig0);
/* Set information about the data to be received
* - 1 byte in length
* - Standard message ID
* - Bit rate switch enabled to use a different bitrate for the data segment
* - Flexible data rate enabled
* - Use zeros for FD padding
*/
flexcan_data_info_t dataInfo =
{
.data_length = 2U,
.msg_id_type = FLEXCAN_MSG_ID_STD,
.enable_brs = true,
.fd_enable = false,
.fd_padding = 0U
};
/* Configure RX message buffer with index RX_MSG_ID and RX_MAILBOX */
FLEXCAN_DRV_ConfigRxMb(FSL_CAN0, 1, &dataInfo, 0x12);
}
|
|