S32K310 CAN Interrupt Receive

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 
已解决

S32K310 CAN Interrupt Receive

跳至解决方案
2,001 次查看
Embedded_novice
Contributor III

我使用CAN以及CANIF配置了S32K310的CAN驱动模块。我知道调用CAN_Write()函数进行报文的发送,但我存有以下的一些问题:

1.我该如何进行报文的接收呢?我看到有一些文章说能够通过CanIf_RxIndication()函数进行接收。但是这个函数在静态代码中的逻辑应当是自动调用,而不是由我在外部主程序中调用。或者说这个函数在触发中断自动执行后将数据进行了存储,那我该如何将这些数据读取出来呢?我是否能用自己编写的回调函数去替换他?(我在MCAL的例程中没有找到使用中断的CAN例程,似乎只有POLLING模式的例程)CAN.png

2.为什么CAN的接收一定要通过CANIF而发送却可以直接由CAN驱动发出?这是否有一些规范限制我必须这样做。

感谢帮助!!

0 项奖励
回复
1 解答
1,978 次查看
Julián_AragónM
NXP TechSupport
NXP TechSupport

Hi @Embedded_novice,

1. You can look at the following training for some information on how FlexCAN works with the drivers: FLEXCAN WITH RTD AND LOW-LEVEL DRIVERS. In order to receive messages in interrupt mode, you must configure the interrupt driver (IntCtrl) and select polling = FALSE inside the FlexCAN data info structure and use "FlexCAN_Ip_Receive".

You can use this example from community post as guidance: Example S32K344 FlexCAN_Ip TX/RX/EnhanceRXFIFO DMA test S32DS3.5 RTD400 - NXP Community.

2. I imagine you are referring to the CanIf_RxIndication API? As I said in the previous response, you can use FlexCAN_Ip_Receive instead.

Best regards,
Julián

在原帖中查看解决方案

0 项奖励
回复
1 回复
1,979 次查看
Julián_AragónM
NXP TechSupport
NXP TechSupport

Hi @Embedded_novice,

1. You can look at the following training for some information on how FlexCAN works with the drivers: FLEXCAN WITH RTD AND LOW-LEVEL DRIVERS. In order to receive messages in interrupt mode, you must configure the interrupt driver (IntCtrl) and select polling = FALSE inside the FlexCAN data info structure and use "FlexCAN_Ip_Receive".

You can use this example from community post as guidance: Example S32K344 FlexCAN_Ip TX/RX/EnhanceRXFIFO DMA test S32DS3.5 RTD400 - NXP Community.

2. I imagine you are referring to the CanIf_RxIndication API? As I said in the previous response, you can use FlexCAN_Ip_Receive instead.

Best regards,
Julián

0 项奖励
回复
%3CLINGO-SUB%20id%3D%22lingo-sub-2052831%22%20slang%3D%22zh-CN%22%20mode%3D%22CREATE%22%3ES32K310%20CAN%20Interrupt%20Receive%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2052831%22%20slang%3D%22zh-CN%22%20mode%3D%22CREATE%22%3E%3CP%3E%E6%88%91%E4%BD%BF%E7%94%A8CAN%E4%BB%A5%E5%8F%8ACANIF%E9%85%8D%E7%BD%AE%E4%BA%86S32K310%E7%9A%84CAN%E9%A9%B1%E5%8A%A8%E6%A8%A1%E5%9D%97%E3%80%82%E6%88%91%E7%9F%A5%E9%81%93%E8%B0%83%E7%94%A8CAN_Write()%E5%87%BD%E6%95%B0%E8%BF%9B%E8%A1%8C%E6%8A%A5%E6%96%87%E7%9A%84%E5%8F%91%E9%80%81%EF%BC%8C%E4%BD%86%E6%88%91%E5%AD%98%E6%9C%89%E4%BB%A5%E4%B8%8B%E7%9A%84%E4%B8%80%E4%BA%9B%E9%97%AE%E9%A2%98%EF%BC%9A%3C%2FP%3E%3CP%3E1.%E6%88%91%E8%AF%A5%E5%A6%82%E4%BD%95%E8%BF%9B%E8%A1%8C%E6%8A%A5%E6%96%87%E7%9A%84%E6%8E%A5%E6%94%B6%E5%91%A2%EF%BC%9F%E6%88%91%E7%9C%8B%E5%88%B0%E6%9C%89%E4%B8%80%E4%BA%9B%E6%96%87%E7%AB%A0%E8%AF%B4%E8%83%BD%E5%A4%9F%E9%80%9A%E8%BF%87CanIf_RxIndication()%E5%87%BD%E6%95%B0%E8%BF%9B%E8%A1%8C%E6%8E%A5%E6%94%B6%E3%80%82%E4%BD%86%E6%98%AF%E8%BF%99%E4%B8%AA%E5%87%BD%E6%95%B0%E5%9C%A8%E9%9D%99%E6%80%81%E4%BB%A3%E7%A0%81%E4%B8%AD%E7%9A%84%E9%80%BB%E8%BE%91%E5%BA%94%E5%BD%93%E6%98%AF%E8%87%AA%E5%8A%A8%E8%B0%83%E7%94%A8%EF%BC%8C%E8%80%8C%E4%B8%8D%E6%98%AF%E7%94%B1%E6%88%91%E5%9C%A8%E5%A4%96%E9%83%A8%E4%B8%BB%E7%A8%8B%E5%BA%8F%E4%B8%AD%E8%B0%83%E7%94%A8%E3%80%82%E6%88%96%E8%80%85%E8%AF%B4%E8%BF%99%E4%B8%AA%E5%87%BD%E6%95%B0%E5%9C%A8%E8%A7%A6%E5%8F%91%E4%B8%AD%E6%96%AD%E8%87%AA%E5%8A%A8%E6%89%A7%E8%A1%8C%E5%90%8E%E5%B0%86%E6%95%B0%E6%8D%AE%E8%BF%9B%E8%A1%8C%E4%BA%86%E5%AD%98%E5%82%A8%EF%BC%8C%E9%82%A3%E6%88%91%E8%AF%A5%E5%A6%82%E4%BD%95%E5%B0%86%E8%BF%99%E4%BA%9B%E6%95%B0%E6%8D%AE%E8%AF%BB%E5%8F%96%E5%87%BA%E6%9D%A5%E5%91%A2%EF%BC%9F%E6%88%91%E6%98%AF%E5%90%A6%E8%83%BD%E7%94%A8%E8%87%AA%E5%B7%B1%E7%BC%96%E5%86%99%E7%9A%84%E5%9B%9E%E8%B0%83%E5%87%BD%E6%95%B0%E5%8E%BB%E6%9B%BF%E6%8D%A2%E4%BB%96%EF%BC%9F%EF%BC%88%E6%88%91%E5%9C%A8MCAL%E7%9A%84%E4%BE%8B%E7%A8%8B%E4%B8%AD%E6%B2%A1%E6%9C%89%E6%89%BE%E5%88%B0%E4%BD%BF%E7%94%A8%E4%B8%AD%E6%96%AD%E7%9A%84CAN%E4%BE%8B%E7%A8%8B%EF%BC%8C%E4%BC%BC%E4%B9%8E%E5%8F%AA%E6%9C%89POLLING%E6%A8%A1%E5%BC%8F%E7%9A%84%E4%BE%8B%E7%A8%8B%EF%BC%89%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22CAN.png%22%20style%3D%22width%3A%20775px%3B%22%3E%3Cspan%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22CAN.png%22%20style%3D%22width%3A%20775px%3B%22%3E%3Cimg%20src%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F326033i9ACCC73EBABC4DF1%2Fimage-size%2Flarge%3Fv%3Dv2%26amp%3Bpx%3D999%22%20role%3D%22button%22%20title%3D%22CAN.png%22%20alt%3D%22CAN.png%22%20%2F%3E%3C%2Fspan%3E%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E2.%E4%B8%BA%E4%BB%80%E4%B9%88CAN%E7%9A%84%E6%8E%A5%E6%94%B6%E4%B8%80%E5%AE%9A%E8%A6%81%E9%80%9A%E8%BF%87CANIF%E8%80%8C%E5%8F%91%E9%80%81%E5%8D%B4%E5%8F%AF%E4%BB%A5%E7%9B%B4%E6%8E%A5%E7%94%B1CAN%E9%A9%B1%E5%8A%A8%E5%8F%91%E5%87%BA%EF%BC%9F%E8%BF%99%E6%98%AF%E5%90%A6%E6%9C%89%E4%B8%80%E4%BA%9B%E8%A7%84%E8%8C%83%E9%99%90%E5%88%B6%E6%88%91%E5%BF%85%E9%A1%BB%E8%BF%99%E6%A0%B7%E5%81%9A%E3%80%82%3C%2FP%3E%3CP%3E%E6%84%9F%E8%B0%A2%E5%B8%AE%E5%8A%A9%EF%BC%81%EF%BC%81%3C%2FP%3E%3C%2FLINGO-BODY%3E