在线时间6 小时
UID3234946
注册时间2018-4-17
NXP金币0
该用户从未签到
新手上路
- 积分
- 46
- 最后登录
- 2021-11-24
|
1、先配置引脚
GPIOInit();
2、配置 CAN
const can_user_config_t can0_pal_Config0 = {
.maxBuffNum = 2U,
.mode = CAN_LOOPBACK_MODE,
.enableFD = true,
.payloadSize = CAN_PAYLOAD_SIZE_16,
.nominalBitrate = {
.propSeg = 7,
.phaseSeg1 = 4,
.phaseSeg2 = 1,
.preDivider = 0,
.rJumpwidth = 1
},
.dataBitrate = {
.propSeg = 11,
.phaseSeg1 = 1,
.phaseSeg2 = 1,
.preDivider = 0,
.rJumpwidth = 1
},
.extension = NULL,
};
CAN_Init(INST_CAN_PAL1, &can_pal1_Config0);
3、配置接收缓冲区
/* Set information about the data to be sent
* - 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
*/
can_buff_config_t buffCfg = {
.enableFD = true,
.enableBRS = true,
.fdPadding = 0U,
.idType = CAN_MSG_ID_STD,
.isRemote = false
};
/* Configure RX buffer with index RX_MAILBOX */
CAN_ConfigRxBuff(INST_CAN_PAL1, RX_MAILBOX, &buffCfg, RX_MSG_ID);
这里有个问题 : RX_MSG_ID 这是应该就是接收ID吧,不是这个消息ID 不会到 上面配置的 buff里面去 ,对吧
4、开始接收
/* Start receiving data in RX_MAILBOX. */
CAN_Receive(INST_CAN_PAL1, RX_MAILBOX, &recvMsg);
5、配置发送,以及 发送数据
/* Set information about the data to be sent
* - 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
*/
can_buff_config_t buffCfg = {
.enableFD = true,
.enableBRS = true,
.fdPadding = 0U,
.idType = CAN_MSG_ID_STD,
.isRemote = false
};
/* Configure TX buffer with index TX_MAILBOX*/
CAN_ConfigTxBuff(INST_CAN_PAL1, TX_MAILBOX, &buffCfg);
/* Prepare message to be sent */
can_message_t message = {
.cs = 0U,
.id = TX_MSG_ID,
.data[0] = ledRequested,
.length = 1U
};
/* Send the information via CAN */
CAN_Send(INST_CAN_PAL1, TX_MAILBOX, &message);
6、问题 是 只是进入中断一次,即 发送完成 中断,没有进入接收中断 !!!不知道哪里配置错了,请告知 ,谢谢!
最佳答案
所-长 发表于 2018-5-22 13:36
总结:
1、通过上面分析,得出 Propagation Segment Time 和 Time-Quanta 的值, 就可以 得出 寄存 ...
波特率配置请参考:【经验分享】KE06 M ...
|
|