316_S32K144 EVB 标准CAN配置

64 篇文章 165 订阅

完整的S32K144的学习汇总如下:

https://github.com/GreyZhang/g_s32k144

    继续S32K144的学习,这一次来做一下CAN通信功能的一个小结。说起来,这算是一个迟到的小结,因为这个SBC uja11691耗费了我一点时间,中间的过程不是很顺利。

    最初的配置,还是按照能够找到的Demo开始,然后增加到我自己的工程中。但是一直不成功,于是切换了方式,直接测试Demo,发现几个Demo其实是不能够成功实现与外部设备收发的。于是,研究了一下说明书以及文档,确认了几个修改点。

  1. 供电方式需要修改,如果要使用CAN通信应该使用12V的供电而不是USB的供电模式。
  2. SBC应该按照自己的需求去做一下配置修改。
  3. 我找到的几个Demo,SBC的依赖驱动SPI是有一点问题的,因为片选配置错误。
  4. 如果结合FreeRTOS进行调试,软件的初始化处理需要注意,如果OS没有启动直接初始化会触发一些中断,最终直接进入异常。但是,在我们的实际调试中,可能看到的是进入了看门狗中断。
  5. SBC其实是有一个看门狗的,这个看门狗需要进行得当的处理。

做到上面几点,其实基本上问题就不大了。我自己的测试使用500K的波特率,CAN监控采用了Kvaser的CAN卡。测试,写了一个周期性的发送。相关的初始化代码以及测试代码如下:

    以上是通过SPI对SBC进行初始化以及CAN模块初始化的过程,中间还配置了两个中断优先级,防止OS出现问题。

    发送函数是按照官方的例子改的,但是我增加了一个abort(上面是没有开启的),这样可以处理掉一些错误导致的阻塞。

    这就是那个简单的测试,我在100ms的任务中进行了调用。

    这是监控到的发送出来的报文,从时间戳看得出其实这个发送的稳定性以及OS的调度还是比较准确的。

    好的,这一次的学习总结暂且到此。CAN模块算是做了一个开始了,接下来还有更多有意思的东西可以做了。

完整的S32K144的学习汇总如下:

https://github.com/GreyZhang/g_s32k144

  • 5
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值