331_S32K144 CAN FIFO初步

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

https://github.com/GreyZhang/g_s32k144

    继续S32K144的学习,这次来看看CAN的FIFO接收模式。FIFO的功能是使用多个buffer级联,组成一个队列的方式实现队列的报文接收。使用FIFO,可以让驱动软件设计更加简洁。同时,FIFO在接收的能力上也是很强的,可以让我们在后期软件处理上有更多的设计尝试。

    配置S32K144的FIFO功能比较简单,直接在SDK配置界面中使能即可。

331_S32K144 CAN FIFO初步_第1张图片

    接下来,进行接收掩码表的设置。

331_S32K144 CAN FIFO初步_第2张图片

    这样,可以让软件接收8个扩展帧的报文,ID数值为1~8。

331_S32K144 CAN FIFO初步_第3张图片

    为了方便观察,我在软件中通过串口将接收到的报文打印出来。上面是报文ID为5的扩展帧被接收到的状态。

331_S32K144 CAN FIFO初步_第4张图片

    以上是简单的测试代码。

    经过测试,报文0~10。除了我们设置的1~8的扩展帧都无法接收。跟预期的相符,其他的ID无法接收。

    在增加一组对比测试,看看对标准帧的是被情况。代码只需要做如下修改:

331_S32K144 CAN FIFO初步_第5张图片

    重新测试,也只有8个标准帧的报文可以被接收到。

    以上算是今天对S32K144 CAN FIFO接收的一个初步的认识,这还很不满足一般的工程应用。即使是filter table扩充到128个,也算不上是很灵活。虽然,128个的table接收也能够满足很多工程需要。下一次,我们尝试做一下对全部ID报文的无差异接收。

    今天有事过得比较焦虑的一天,跟曾经一个老同事做了一下交流。一个让人感觉谦虚务实的一个高级工程师,也让我曾经从他身上学到了很多东西。所谓见贤思齐,我觉得我应该向他学习。很多人都提到过中年焦虑,我今年33岁,也到了这个焦虑的阶段了。不敢想,转眼间,我很快会到35岁,时光非常狠!

    “时光,凭你多狠!我的爱在我的诗里将万古长青!”祝愿看到我学习笔记的人,拥有诗一样的生活,让爱在生活中万古长青!

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

https://github.com/GreyZhang/g_s32k144

你可能感兴趣的:(S32K,嵌入式,CAN)