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

2024-06-13 14:04

本文主要是介绍NXP RT1060学习总结 - fsl_flexcan 基础CAN函数说明 -2,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

概要

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

根据fsl_flexcan.h文件从文件末尾往前面梳理,总共30个基础CAN函数;
该文章只梳理常规CAN,增强型CAN后面再单独梳理。
使用的是RT1064开发板进行测试。

11、轮询接收CAN FIFO消息

函 数 :status_t FLEXCAN_TransferReceiveFifoBlocking(CAN_Type *base, flexcan_frame_t *pRxFrame);
说 明 :在调用此API之前不需要创建传输句柄。
参 数 :base FlexCAN外设基地址
参 数 :pRxFrame 指向用于接收的CAN消息帧结构的指针。
返回值:kStatus_Success 从Rx FIFO读取消息成功。
返回值:kStatus_Fail 未使能Rx FIFO。

12、轮询接收CAN消息

函 数 :status_t FLEXCAN_TransferReceiveBlocking(CAN_Type *base, uint8_t mbIdx, flexcan_frame_t *pRxFrame);
说 明 :在调用此API之前不需要创建传输句柄。
参 数 :base FlexCAN外设基地址
参 数 :mbIdx FlexCAN消息缓冲区索引。
参 数 :pRxFrame 指向用于接收的CAN消息帧结构的指针。
返回值:kStatus_Success Rx消息缓冲区已满,并已成功读取。
返回值:kStatus_FLEXCAN_RxOverflow Rx消息缓冲区已经溢出,并已成功读取。
返回值:kStatus_Fail Rx消息缓冲区为空。

13、轮询发送CAN消息

函 数 :status_t FLEXCAN_TransferSendBlocking(CAN_Type *base, uint8_t mbIdx, flexcan_frame_t *pTxFrame);
说 明 :在调用此API之前不需要创建传输句柄。
参 数 :base FlexCAN外设基地址
参 数 :mbIdx FlexCAN消息缓冲区索引。
参 数 :pRxFrame 指向用于接收的CAN消息帧结构的指针。
返回值:kStatus_Success 写Tx消息缓冲区成功。
返回值:kStatus_Fail Tx消息缓冲区当前正在使用中。

14、从传统Rx FIFO读取FlexCAN消息

函 数 :status_t FLEXCAN_ReadRxFifo(CAN_Type *base, flexcan_frame_t *pRxFrame);
说 明 :这个函数从FlexCAN Legacy Rx FIFO读取CAN消息。
参 数 :base FlexCAN外设基地址
参 数 :pRxFrame 指向用于接收的CAN消息帧结构的指针。
返回值:kStatus_Success 从Rx FIFO读取消息成功。
返回值:kStatus_Fail 未使能Rx FIFO。

15、从接收消息缓冲区中读取FlexCAN消息

函 数 :status_t FLEXCAN_ReadRxMb(CAN_Type *base, uint8_t mbIdx, flexcan_frame_t *pRxFrame);
说 明 :这个函数从指定的接收消息缓冲区中读取CAN消息。该函数用刚刚接收到的数据填充接收CAN消息帧结构,并再次激活消息缓冲区。函数立即返回。
参 数 :base FlexCAN外设基地址
参 数 :mbIdx FlexCAN消息缓冲区索引。
参 数 :pRxFrame 指向用于接收的CAN消息帧结构的指针。
返回值:kStatus_Success Rx消息缓冲区已满,并已成功读取。
返回值:kStatus_FLEXCAN_RxOverflow Rx消息缓冲区已经溢出,并已成功读取。
返回值:kStatus_Fail Rx消息缓冲区为空。

16、将FlexCAN消息写入发送消息缓冲区

函 数 :status_t FLEXCAN_TransferSendBlocking(CAN_Type *base, uint8_t mbIdx, flexcan_frame_t *pTxFrame);
说 明 :该函数将CAN消息写入指定的发送消息缓冲区,并改变消息缓冲区的状态,开始发送CAN消息。之后,函数立即返回。
参 数 :base FlexCAN外设基地址
参 数 :mbIdx FlexCAN消息缓冲区索引。
参 数 :pRxFrame 指向用于接收的CAN消息帧结构的指针。
返回值:kStatus_Success 写Tx消息缓冲区成功。
返回值:kStatus_Fail Tx消息缓冲区当前正在使用中。

17、配置CAN 接收 fifo

函 数 :void FLEXCAN_SetRxFifoConfig(CAN_Type *base, const flexcan_rx_fifo_config_t *pRxFifoConfig, bool enable);
说 明 :这个函数用给定的配置配置FlexCAN Rx FIFO。传统的Rx FIFO只能接收经典的can消息。
参 数 :base FlexCAN外设基地址
参 数 :pRxFifoConfig 指向FlexCAN Legacy Rx FIFO配置结构的指针。当enable参数为false时,可以为NULL。
参 数 :enable true/false
返回值:无

18、配置FlexCAN接收消息缓冲区

函 数 :void FLEXCAN_SetRxMbConfig(CAN_Type *base, uint8_t mbIdx, const flexcan_rx_mb_config_t *pRxMbConfig, bool enable);
说 明 :这个函数清除FlexCAN内置的消息缓冲区,并将其配置为接收消息缓冲区。
参 数 :base FlexCAN外设基地址
参 数 :mbIdx FlexCAN消息缓冲区索引
参 数 :pRxMbConfig 指向FlexCAN消息缓冲区配置结构的指针。
参 数 :enable true/false
返回值:无

19、配置FlexCAN发送消息缓冲区

函 数 :void FLEXCAN_SetTxMbConfig(CAN_Type *base, uint8_t mbIdx, bool enable);
说 明 :此函数终止先前的传输,清除消息缓冲区,并将其配置为传输消息缓冲区。
参 数 :base FlexCAN外设基地址
参 数 :mbIdx FlexCAN消息缓冲区索引
参 数 :enable true/false
返回值:无

20、设置FlexCAN接收FIFO全局掩码。

函 数 :void FLEXCAN_SetRxFifoGlobalMask(CAN_Type *base, uint32_t mask);
说 明 :这个函数在匹配过程中为FlexCAN FIFO设置全局掩码。
参 数 :base FlexCAN外设基地址
参 数 :mask Rx Fifo全局掩码值。
返回值:无

未完,待续……

这篇关于NXP RT1060学习总结 - fsl_flexcan 基础CAN函数说明 -2的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/1057504

相关文章

Go语言中make和new的区别及说明

《Go语言中make和new的区别及说明》:本文主要介绍Go语言中make和new的区别及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1 概述2 new 函数2.1 功能2.2 语法2.3 初始化案例3 make 函数3.1 功能3.2 语法3.3 初始化

MySQL 中的 CAST 函数详解及常见用法

《MySQL中的CAST函数详解及常见用法》CAST函数是MySQL中用于数据类型转换的重要函数,它允许你将一个值从一种数据类型转换为另一种数据类型,本文给大家介绍MySQL中的CAST... 目录mysql 中的 CAST 函数详解一、基本语法二、支持的数据类型三、常见用法示例1. 字符串转数字2. 数字

Python内置函数之classmethod函数使用详解

《Python内置函数之classmethod函数使用详解》:本文主要介绍Python内置函数之classmethod函数使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录1. 类方法定义与基本语法2. 类方法 vs 实例方法 vs 静态方法3. 核心特性与用法(1编程客

Python函数作用域示例详解

《Python函数作用域示例详解》本文介绍了Python中的LEGB作用域规则,详细解析了变量查找的四个层级,通过具体代码示例,展示了各层级的变量访问规则和特性,对python函数作用域相关知识感兴趣... 目录一、LEGB 规则二、作用域实例2.1 局部作用域(Local)2.2 闭包作用域(Enclos

java中新生代和老生代的关系说明

《java中新生代和老生代的关系说明》:本文主要介绍java中新生代和老生代的关系说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、内存区域划分新生代老年代二、对象生命周期与晋升流程三、新生代与老年代的协作机制1. 跨代引用处理2. 动态年龄判定3. 空间分

JavaSE正则表达式用法总结大全

《JavaSE正则表达式用法总结大全》正则表达式就是由一些特定的字符组成,代表的是一个规则,:本文主要介绍JavaSE正则表达式用法的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下... 目录常用的正则表达式匹配符正则表China编程达式常用的类Pattern类Matcher类PatternSynta

MySQL count()聚合函数详解

《MySQLcount()聚合函数详解》MySQL中的COUNT()函数,它是SQL中最常用的聚合函数之一,用于计算表中符合特定条件的行数,本文给大家介绍MySQLcount()聚合函数,感兴趣的朋... 目录核心功能语法形式重要特性与行为如何选择使用哪种形式?总结深入剖析一下 mysql 中的 COUNT

MySQL之InnoDB存储引擎中的索引用法及说明

《MySQL之InnoDB存储引擎中的索引用法及说明》:本文主要介绍MySQL之InnoDB存储引擎中的索引用法及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录1、背景2、准备3、正篇【1】存储用户记录的数据页【2】存储目录项记录的数据页【3】聚簇索引【4】二

mysql中的数据目录用法及说明

《mysql中的数据目录用法及说明》:本文主要介绍mysql中的数据目录用法及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、背景2、版本3、数据目录4、总结1、背景安装mysql之后,在安装目录下会有一个data目录,我们创建的数据库、创建的表、插入的

MySQL 中 ROW_NUMBER() 函数最佳实践

《MySQL中ROW_NUMBER()函数最佳实践》MySQL中ROW_NUMBER()函数,作为窗口函数为每行分配唯一连续序号,区别于RANK()和DENSE_RANK(),特别适合分页、去重... 目录mysql 中 ROW_NUMBER() 函数详解一、基础语法二、核心特点三、典型应用场景1. 数据分