查看: 11592|回复: 5

[S32] 关于如何使用S32K144的中断服务函数进行CAN数据的接收

[复制链接]

该用户从未签到

2

主题

7

帖子

0

注册会员

Rank: 2

积分
70
最后登录
2019-10-10
发表于 2019-8-10 15:15:51 | 显示全部楼层 |阅读模式
在 flexcan_irq.c可以找到can的中断服务函数void CAN0_ORed_0_15_MB_IRQHandler(void);但是他里面有个 FLEXCAN_IRQHandler(0U),不知道这个的作用是什么,在调用中断服务函数的时候是否是把 FLEXCAN_IRQHandler(0U)删除,而调用FLEXCAN_DRV_Receive()还是需要怎样做?希望有人给个指示。在下感激不尽。


我知道答案 目前已有4人回答
回复

使用道具 举报

该用户从未签到

1

主题

27

帖子

2

注册会员

Rank: 2

积分
137
最后登录
2025-5-27
发表于 2019-8-14 14:16:09 | 显示全部楼层
在./Project_Settings/Startup_Code/startup_S32K144.S 启动文件种里面可以看到中断向量表,

CAN0_ORed_IRQHandler - CAN0 OR'ed [Bus Off OR Transmit Warning OR Receive Warning]
CAN0_ORed_0_15_MB_IRQHandler - CAN0 OR'ed Message buffer (0-15)
CAN0_ORed_16_31_MB_IRQHandler - CAN0 OR'ed Message buffer (16-31)

其中,
Bus Off 是总线离线的意思,一般是发生了错误导致离线;
Transmit Warning对应中断标志TWRNINT是发送错误计数 从小于96到大于等于 96 时置位;
Receive Warning 对应中断标志RWRNINT是接收错误计数 从小于96到大于等于 96 时置位;
你想要的接收中断应该是使用CAN0_ORed_0_15_MB_IRQHandler 或者CAN0_ORed_16_31_MB_IRQHandler ,根据具体使用的MB编号来决定。
各中断区别,见下图3

微信图片_20190814140151.png

微信截图_20190814140959.png

微信截图_20190814141447.png

点评

非常感谢您的回答,很抱歉这么晚才上来回复你。我还想请问下,进入BUSOFF后我关闭发送传输请求,然后我如何重新启动CAN呢,是重新初始化CAN的配吗  发表于 2019-8-20 11:44
回复 支持 1 反对 0

使用道具 举报

  • TA的每日心情
    郁闷
    2019-9-19 15:56
  • 签到天数: 3 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    2

    主题

    20

    帖子

    0

    注册会员

    Rank: 2

    积分
    74
    最后登录
    2019-11-6
    发表于 2019-9-16 20:32:33 | 显示全部楼层
    写在回调函数里,同时注册回调函数就好。
        CAN_InstallEventCallback(INST_CAN_PAL1, can0_Callback, NULL);
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    2

    主题

    7

    帖子

    0

    注册会员

    Rank: 2

    积分
    70
    最后登录
    2019-10-10
     楼主| 发表于 2019-9-25 20:50:14 | 显示全部楼层
    tao475824827 发表于 2019-9-16 20:32
    写在回调函数里,同时注册回调函数就好。
        CAN_InstallEventCallback(INST_CAN_PAL1, can0_Callback, NU ...

    好的 多谢,这个问题已经解决。但是我发现在SDK的初始化函数里面有了使能接发送接收以及错误中断函数,接收发送中断函数可以使用,但是进入不了错误中断函数,不知您是否知道原因
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    0

    主题

    1

    帖子

    0

    新手上路

    Rank: 1

    积分
    6
    最后登录
    2019-10-17
    发表于 2019-10-17 17:43:43 | 显示全部楼层
    需要控制CTRL1寄存器进行相关错误中断的使能
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-9-10 06:30 , Processed in 0.093750 second(s), 28 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表