在线时间2221 小时
UID3253523
注册时间2016-3-21
NXP金币2874
该用户从未签到
超级版主
 
- 积分
- 24884
- 最后登录
- 2025-7-20
|
发表于 2018-4-19 13:38:25
|
显示全部楼层
这个就奇怪了,我给你的代码就是能工作的代码。
你现在有没有接外面的CAN调试器呢?要接CAN 调试器的,然后看看有没有收到标准帧和扩展帧?
MyCANPtr = CAN1_Init(NULL); /* Initialization of CAN2 component */
Frame.MessageID = 0x123U; /* Set Tx ID value - standard */
Frame.FrameType = LDD_CAN_DATA_FRAME; /* Specyfying type of Tx frame - Data frame */
Frame.Length = sizeof(OutData); /* Set number of bytes in data frame - 4B */
Frame.Data = OutData; /* Set pointer to OutData buffer */
DataFrameTxFlg = FALSE; /* Initialization of DataFrameTxFlg */
Error = CAN1_SendFrame(MyCANPtr, 1U, &Frame); /* Sends the data frame over buffer 0 */
while (!DataFrameTxFlg) { /* Wait until data frame is transmitted */
}
Frame.MessageID = (0x123456U | LDD_CAN_MESSAGE_ID_EXT); /* Set Tx ID value - extended */
Frame.FrameType = LDD_CAN_DATA_FRAME; /* Specyfying type of Tx frame - Data frame */
Frame.Length = sizeof(OutData); /* Set number of bytes in data frame - 4B */
Frame.Data = OutData; /* Set pointer to OutData buffer */
DataFrameTxFlg = FALSE; /* Clear DataFrameTxFlg */
Error = CAN1_SendFrame(MyCANPtr, 1U, &Frame); /* Sends the data frame over buffer 0 */
while (!DataFrameTxFlg) { /* Wait until data frame is transmitted */
}
while (!DataFrameRxFlg) { /* Wait until data frame is received */
}
Frame.Data = InpData; /* Set pointer to InpData buffer */
Error = CAN1_ReadFrame(MyCANPtr, 0U, &Frame);
这个代码是我之前给客户做的,也测试过的。
你把CAN节点接上啊,时钟不行,你在用示波器测试下CAN_TX看看有没有波形出来。 |
|