【LPC54616的自学之路-4】FDCAN
串口搞得差不多了,接下来研究下这个芯片的FDCAN
54616的FDCAN模块
首先这个芯片是支持FDCAN和普通的CAN的。
然后去隔壁的ST看看H743【同样支持FDCAN】的芯片看一看
是不是有些类似呢,其实你仔细看手册,对比NXP和ST对FDCAN这个IP的实现和其手册的描述,你会发现很有意思的事情
基本上都是差不多的,甚至有些描述基本就是一样的,寄存器也是
除了有些细微的不同之外,大部分功能基本上都是一致的【ST的CAN1有TTCAN的功能,NXP这个就没有,都是FDCAN】
估计都是按照某个标准做的吧,可能要实现一个FDCAN的IP核都得这样子实现吧^_^
这么弄的话倒是很友好了,ST的手册是有中文版的,NXP就没得了,可以互相对照着看一看,很有参考的价值
54616的CAN功能代码实现
这里我们先以基础的普通CAN功能来举例子,估计这个FDCAN的功能应该也是类似的
这里第一次探索性的实验,我们采用SDK配置工具生成代码的方式,这个比较方便
以后熟悉了可以研究研究寄存器如何实现
待搬运
CAN的发送和接收功能实现
发送的步骤,简单说就3步
- 填发送数据结构体
- 发送数据结构体写入芯片内部的发送缓冲区
- 请求芯片发送
接收的步骤
- 打开指定的接收缓冲新数据到来中断
- 中断函数里面判断中断标志,中断标志出现以后,执行对应的数据接收到接收数据结构体的函数
- 清除对应的中断标志