欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 美景 > NXP RT1060学习总结 - fsl_flexcan CAN FD 函数说明 -2

NXP RT1060学习总结 - fsl_flexcan CAN FD 函数说明 -2

2024/10/24 11:12:04 来源:https://blog.csdn.net/qq_35671135/article/details/139795890  浏览:    关键词:NXP RT1060学习总结 - fsl_flexcan CAN FD 函数说明 -2

概要

CAN测试源码:
https://download.csdn.net/download/qq_35671135/89425377

根据fsl_flexcan.h文件从文件末尾往前面梳理,总共CAN FD处理函数;
使用的是RT1064开发板进行测试。

11、设置FlexCAN FD帧的比特率

函 数 :status_t FLEXCAN_SetFDBitRate(CAN_Type *base, uint32_t sourceClock_Hz, uint32_t bitRateN_Bps, uint32_t bitRateD_Bps);
说 明 :该函数根据FLEXCAN_FDCalculateImprovedTimingValues() API计算的定时值来设置FLEXCAN FD的波特率
参 数 :base FlexCAN外设基地址
参 数 :sourceClock_Hz 时钟源频率 Hz
参 数 :bitRateN_Bps 标称比特率,单位为Bps。
参 数 :bitRateD_Bps 数据比特率,单位为Bps。
返回值:kStatus_Success 成功设置CAN FD比特率(包括标称和数据相位)。

12、设置FlexCAN CANFD数据相位定时特性。

函 数 :void FLEXCAN_SetFDTimingConfig(CAN_Type *base, const flexcan_timing_config_t *pConfig);
说 明 :该功能为CANFD数据相位定时特性提供用户设置。该功能适用于有经验的用户。对于经验不足的用户,调用FLEXCAN_SetFDBitRate()来设置标称/数据比特率。
参 数 :base FlexCAN外设基地址
参 数 :pConfig 指向定时配置结构的指针。
返回值:无

13、初始化FlexCAN实例

函 数 :void FLEXCAN_FDInit( CAN_Type *base, const flexcan_config_t *pConfig, uint32_t sourceClock_Hz, flexcan_mb_size_t dataSize, bool brs);
说 明 :这个函数用用户定义的设置初始化FlexCAN模块。这个例子展示了如何设置flexcan_config_t参数,以及如何通过传递这些参数来调用FLEXCAN_FDInit函数。
参 数 :base FlexCAN外设基地址
参 数 :pConfig 指向用户定义的配置结构的指针。
参 数 :sourceClock_Hz FlexCAN协议时钟源频率,单位为Hz。
参 数 :dataSize FlexCAN消息缓冲区有效载荷大小。实际发送或接收的CAN FD帧数据大小需要小于或等于此值。
参 数 :brs 如果在FD模式下启用比特率开关,则为True。
返回值:无

14、根据CANFD的特定比特率计算改进的定时值。

函 数 :bool FLEXCAN_FDCalculateImprovedTimingValues(CAN_Type *base, uint32_t bitRate, uint32_t bitRateFD, uint32_t sourceClock_Hz, flexcan_timing_config_t *pTimingConfig);
说 明 :该函数用于根据给定的标称相位比特率和数据相位比特率计算CANFD定时值。计算时间值将在CBT/ENCBT和FDCBT/EDCBT寄存器中设置。计算基于CiA 1301 v1.0.0文档的建议。
参 数 :base FlexCAN外设基地址
参 数 :bitRate CANFD总线控制速度(bps)由用户定义。
参 数 :bitRateFD CAN FD数据相位速度(以bps为单位)由用户定义。等于bitRate表示禁用比特率切换
参 数 :sourceClock_Hz 源时钟频率,单位为Hz。
参 数 :pTimingConfig 指向FlexCAN定时配置结构的指针。
返回值:如果找到时序配置,则为TRUE,如果没有找到配置,则为FALSE.

15、确定FlexCAN实例在运行时是否支持CAN FD模式。

函 数 :bool FLEXCAN_IsInstanceHasFDMode(CAN_Type *base);
说 明 :只有当不同的soc部件共享soc部件名称宏定义时才使用此API。否则,可以使用不同的SOC部件名称在编译时确定FlexCAN实例是否支持can FD模式。如果需要使用这个API来确定是否支持CAN FD模式,首先需要执行FLEXCAN_Init函数,然后调用这个API并使用返回值来确定是否支持CAN FD模式,如果返回true,继续调用FLEXCAN_FDInit来启用CAN FD模式。
参 数 :base FlexCAN外设基地址
返回值:如果实例支持CAN FD模式为TRUE,如果实例只支持经典CAN(2.0)模式为FALSE。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com