S32K116调试记录(2)CAN接口调试

1. 配置CAN 管脚

2. 修改时钟为外部时钟

      样机使用48Mhz外部晶振,之前这里选的是内部时钟导致CAN一直不通

对应原理图如下:

修改如下:

3. 使用SDK中的CAN示例代码,发现CAN发送一直异常

现象: 单步CAN发送一帧数据,使用CANPro接收会一直接收同一帧数据,停不下来,

         而且发现CAN没有进入到发送完成中断里面去

出现CAN发送异常的SDKs版本如下:

原因: 

       工程中使用的SDKs版本不一样导致的,示例代码中对应的是S32K116的开发板而我们用的是116的样机板,

       所以SDKs的版  本选择有一定不一样

解决办法如下:

      1.重新创建工程

      2.选择SDKs时选择最新的版本 2.9.2版本,如下

4. SDKs版本选择以及示例代码选择建议

     以后推荐就用SDKv2.92版本的 (其他版本指不定出啥问题)

5. CAN 发送和接收 中断模式和阻塞模式调试区别

6. CAN过滤器使用方法

a .使用MB的方式

    (1) 每个MB buffer对应一个can id, 目前使用的此方法,测试正常。

    (2) 注意必须CAN RX api必须使用中断模式(多次触发中断正常),不能使用阻塞模式(测试只能触发一次后续触发不了)

     (3)***CAN_Receive接口每个都RX_MAILBOX都必须要对应***

    (4)另外: 接收中断处理完后,必须再重起所以RX_MAILBOX buffer的CAN_Receive

b.使用fifo的方式

      使用FIFO的方式,设置滤波和接收buffer.

      但是使用此方法一直会有各种数据接受异常,所以未调通,一直使用上面方面

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

free-xx

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值