继续S32K144的学习探索,这次看看CAN默认配置获取功能。这个函数之前在看文档的时候是看到过的,但是一直没在意。主要原因可能是因为我并不是很清楚这个接口可以做什么用。难道是用于反初始化之类的操作?

328_S32K144获取CAN的默认配置_代码实现

    看着相应的信息,其实也是很熟悉,这部分我们打开S32DS的SDK的时候看到的GUI的界面中就有相应的信息。那么,为什么要设置这个一个函数呢?直接用一个全局的const量不可以吗?

    针对这个功能,我们做个测试。看看初始化前后,是否可能会有所变化。至少,现在我用的这个配置中,看看是否有变化。设计简单的代码如下:

328_S32K144获取CAN的默认配置_github_02

    之后,我们看看can_lld_config_data_0、can_lld_config_data_1这两个量的值即可。软件编译烧写成功后运行,之后暂停,调试器查看如下:

    can_lld_config_data_0

328_S32K144获取CAN的默认配置_初始化_03

    can_lld_config_data_

328_S32K144获取CAN的默认配置_github_04

    看上去两个没有差异,接下来,我修改部分配置做一个对比。先把Buffer数目做一下修改看看效果。

    做了一下修改之后,没有发现两个会有什么差异。测试的结果也就不在这里截图展示了。接下来,直接分析下代码实现看看他这部分怎么做的。

328_S32K144获取CAN的默认配置_github_05

    这样一看发现,其实就是一系列的确定值的赋值。不过,这里还是会有有变化的时候,什么时候呢?从代码分析看,如果晶振的主频发生变化的时候这个就会发生改变。因为波特率的计算方式有变化。

    关于这个功能的测试以及分析暂且到此结束,今天的学习也快告一段落了。最近一个亲戚病逝,让我想到了很多事情。由于长时间的熬夜加班,我自己的身体状态也逐渐变差。病痛也时常来给我增加烦恼,让我时常感到身心都受到考验。我们需要休息,更需要健康,还需要快乐的人生。在此,祝福看到我学习笔记的人能够开心快乐,身体健康!