查看: 20164|回复: 9

[S32] S32K can接收处理.

[复制链接]

该用户从未签到

3

主题

3

帖子

0

新手上路

Rank: 1

积分
15
最后登录
2017-2-27
发表于 2017-2-27 15:34:11 | 显示全部楼层 |阅读模式
大家好,

     我参考NXP的示例完成了S32K CAN控制器一个ID的报文接收, 但是要接收多个报文时不知道如何处理.  例如: 不过滤接收ID, 如何中断接收处理;  只接收几个ID, 如何设置过滤器, 完成中断接收处理.


下面的是我只接收一个ID的报文初始化配置:


#include "can0.h"


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 = 8U,
            .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);
}

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

使用道具 举报

该用户从未签到

723

主题

6382

帖子

0

超级版主

Rank: 8Rank: 8

积分
25489
最后登录
2025-9-9
发表于 2017-3-1 16:35:02 | 显示全部楼层
楼主你好!
你可以在代码中都加几个MB,然后参考一个接收的程序,把相关的mask寄存器,以及要接收的ID给填上。
你先尝试着修改,如果修改遇到问题,欢迎继续交流。
回复 支持 反对

使用道具 举报

该用户从未签到

2

主题

15

帖子

0

注册会员

Rank: 2

积分
78
最后登录
2017-12-6
发表于 2017-5-18 15:05:21 | 显示全部楼层
本帖最后由 streamsunshine 于 2017-5-18 15:07 编辑

你好,想问一下你使用的是FRDM-S32K144这个板子么?你调CAN的时候用的哪一个例程啊,我用
D{SFNA1@N1@K8G(%GHP)D{9.png
F:\S32K144\mydriver\FlexCAN\1.png里面的S32K144的FlexCAN例程,但是在板子上找不到MC33903。例程下进去也完全没有反应。而且参考手册上完全没有提到MC33903,以及link的配置,你知道只是什么原因么?
回复 支持 反对

使用道具 举报

该用户从未签到

3

主题

9

帖子

0

注册会员

Rank: 2

积分
59
最后登录
2019-9-4
发表于 2017-5-31 09:07:40 | 显示全部楼层
小恩GG 发表于 2017-3-1 16:35
楼主你好!
你可以在代码中都加几个MB,然后参考一个接收的程序,把相关的mask寄存器,以及要接收的ID给填 ...

版主,您好。最近我也刚接触S32K144这款单片机,也正好接触CAN收发这块,最近在调试CAN接收时发现,接收一个ID的报文就要配置增加一个MB,如果要接收多个ID,就要配置多个MB,是否可以只在一个MB里接收多个ID的报文,再将接收的报文进行ID分类处理?谢谢~
回复 支持 反对

使用道具 举报

该用户从未签到

723

主题

6382

帖子

0

超级版主

Rank: 8Rank: 8

积分
25489
最后登录
2025-9-9
发表于 2017-5-31 09:22:16 | 显示全部楼层
weiyi-374911 发表于 2017-5-31 09:07
版主,您好。最近我也刚接触S32K144这款单片机,也正好接触CAN收发这块,最近在调试CAN接收时发现,接收 ...

S32的问题,请到NXP community发帖,那边有专人去回复S32问题。
http://community.nxp.com
回复 支持 反对

使用道具 举报

该用户从未签到

3

主题

9

帖子

0

注册会员

Rank: 2

积分
59
最后登录
2019-9-4
发表于 2017-5-31 09:40:06 | 显示全部楼层
小恩GG 发表于 2017-5-31 09:22
S32的问题,请到NXP community发帖,那边有专人去回复S32问题。
http://community.nxp.com ...

好的。谢谢版主。
回复 支持 反对

使用道具 举报

  • TA的每日心情
    奋斗
    2017-7-7 17:21
  • 签到天数: 16 天

    连续签到: 1 天

    [LV.4]偶尔看看III

    13

    主题

    82

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    251
    最后登录
    1970-1-1
    发表于 2017-5-31 11:25:08 | 显示全部楼层
    weiyi-374911 发表于 2017-5-31 09:07
    版主,您好。最近我也刚接触S32K144这款单片机,也正好接触CAN收发这块,最近在调试CAN接收时发现,接收 ...

    可是使用FIFO的方式,设置滤波和接收buffer
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    擦汗
    2017-12-11 17:06
  • 签到天数: 10 天

    连续签到: 1 天

    [LV.3]偶尔看看II

    3

    主题

    32

    帖子

    0

    注册会员

    Rank: 2

    积分
    135
    最后登录
    2019-3-1
    发表于 2017-8-8 14:20:31 | 显示全部楼层
    fj1161 发表于 2017-5-31 11:25
    可是使用FIFO的方式,设置滤波和接收buffer

    你好,怎样使用FIFO的方式,设置滤波操作?
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

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

    连续签到: 1 天

    [LV.2]偶尔看看I

    2

    主题

    20

    帖子

    0

    注册会员

    Rank: 2

    积分
    74
    最后登录
    2019-11-6
    发表于 2019-9-15 17:58:29 | 显示全部楼层
    weiyi-374911 发表于 2017-5-31 09:07
    版主,您好。最近我也刚接触S32K144这款单片机,也正好接触CAN收发这块,最近在调试CAN接收时发现,接收 ...

    请问这个问题解决了吗?如何使用一个Mb接多个ID
    回复 支持 反对

    使用道具 举报

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

    连续签到: 1 天

    [LV.2]偶尔看看I

    2

    主题

    20

    帖子

    0

    注册会员

    Rank: 2

    积分
    74
    最后登录
    2019-11-6
    发表于 2019-9-16 20:29:36 | 显示全部楼层
    tao475824827 发表于 2019-9-15 17:58
    请问这个问题解决了吗?如何使用一个Mb接多个ID

    CAN_SetRxFilter即可
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

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

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

    GMT+8, 2025-9-10 09:45 , Processed in 0.115932 second(s), 31 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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