【LPC54616的自学之路-4】FDCAN

串口搞得差不多了,接下来研究下这个芯片的FDCAN

 54616的FDCAN模块

首先这个芯片是支持FDCAN和普通的CAN的。

【LPC54616的自学之路-4】FDCAN

 然后去隔壁的ST看看H743【同样支持FDCAN】的芯片看一看

【LPC54616的自学之路-4】FDCAN 

 是不是有些类似呢,其实你仔细看手册,对比NXP和ST对FDCAN这个IP的实现和其手册的描述,你会发现很有意思的事情

基本上都是差不多的,甚至有些描述基本就是一样的,寄存器也是

除了有些细微的不同之外,大部分功能基本上都是一致的【ST的CAN1有TTCAN的功能,NXP这个就没有,都是FDCAN】

估计都是按照某个标准做的吧,可能要实现一个FDCAN的IP核都得这样子实现吧^_^

这么弄的话倒是很友好了,ST的手册是有中文版的,NXP就没得了,可以互相对照着看一看,很有参考的价值

 54616的CAN功能代码实现

这里我们先以基础的普通CAN功能来举例子,估计这个FDCAN的功能应该也是类似的

这里第一次探索性的实验,我们采用SDK配置工具生成代码的方式,这个比较方便

以后熟悉了可以研究研究寄存器如何实现

待搬运

CAN的发送和接收功能实现

发送的步骤,简单说就3步

  1. 填发送数据结构体
  2. 发送数据结构体写入芯片内部的发送缓冲区
  3. 请求芯片发送

接收的步骤

  1. 打开指定的接收缓冲新数据到来中断
  2. 中断函数里面判断中断标志,中断标志出现以后,执行对应的数据接收到接收数据结构体的函数
  3. 清除对应的中断标志