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

2024-06-12 17:12

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

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

1、FlexCAN IRQ句柄函数

函 数 :void FLEXCAN_TransferHandleIRQ(CAN_Type *base, flexcan_handle_t *handle);
说 明 :这个函数处理FlexCAN错误、消息缓冲区和Rx FIFO IRQ请求
参 数 :base FlexCAN外设基地址
参 数 :handle FlexCAN句柄指针
返回值:无

2、终止从Rx FIFO进程接收的中断驱动消息

函 数 :void FLEXCAN_TransferAbortReceiveFifo(CAN_Type *base, flexcan_handle_t *handle);
说 明 :这个函数终止从Rx FIFO进程接收的中断驱动的消息
参 数 :base FlexCAN外设基地址
参 数 :handle FlexCAN句柄指针
返回值:无

3、中止中断驱动的消息接收进程

函 数 :void FLEXCAN_TransferAbortReceive(CAN_Type *base, flexcan_handle_t *handle, uint8_t mbIdx);
说 明 :这个函数中止中断驱动的消息接收进程
参 数 :base FlexCAN外设基地址
参 数 :handle FlexCAN句柄指针
参 数 :mbIdx FlexCAN消息缓冲区索引
返回值:无

4、中止中断驱动的消息发送进程

函 数 :void FLEXCAN_TransferAbortSend(CAN_Type *base, flexcan_handle_t *handle, uint8_t mbIdx);
说 明 :这个函数终止中断驱动的消息发送进程
参 数 :base FlexCAN外设基地址
参 数 :handle FlexCAN句柄指针
参 数 :mbIdx FlexCAN消息缓冲区索引
返回值:

5、按句柄获取邮箱的时间戳的详细索引

函 数 :uint32_t FLEXCAN_GetTimeStamp(flexcan_handle_t *handle, uint8_t mbIdx);
说 明 :然后函数只能在调用非阻塞数据传输(TX/RX) API时使用,在TX/RX数据传输完成后(用户可以通过handler的回调函数获得状态),我们可以通过句柄获得邮箱的时间戳的详细索引,详细的非阻塞数据传输API (TX/RX)包含:

 *   -FLEXCAN_TransferSendNonBlocking					//CAN 无堵塞发送*   -FLEXCAN_TransferFDSendNonBlocking			//CANFD   无堵塞发送*   -FLEXCAN_TransferReceiveNonBlocking			//CAN 无堵塞接收*   -FLEXCAN_TransferFDReceiveNonBlocking		//CANFD 无堵塞接收*   -FLEXCAN_TransferReceiveFifoNonBlocking		//can fifo 无堵塞接收

参 数 :handle FlexCAN句柄指针
参 数 :mbIdx FlexCAN消息缓冲区索引
返回值:存储在句柄中的邮箱时间戳的索引。

6、获取中断非阻塞接收期间的遗留Rx Fifo传输状态。

函 数 :status_t FLEXCAN_TransferGetReceiveFifoCount(CAN_Type *base, flexcan_handle_t *handle, size_t *count);
说 明 :
参 数 :base FlexCAN外设基地址
参 数 :handle FlexCAN句柄指针
参 数 :count 到目前为止,非阻塞事务接收到的CAN消息数
返回值:kStatus_InvalidArgument 计数无效
返回值:kStatus_Success 成功返回计数

7、使用IRQ从Rx FIFO接收CAN消息

函 数 :status_t FLEXCAN_TransferReceiveFifoNonBlocking(CAN_Type *base, flexcan_handle_t *handle, flexcan_fifo_transfer_t *pFifoXfer);
说 明 :此函数使用IRQ接收消息。这是一个非阻塞函数,它会立即返回。当接收到所有消息时,将调用receive回调函数。
参 数 :base FlexCAN外设基地址
参 数 :handle FlexCAN句柄指针
参 数 :pFifoXfer FlexCAN Rx FIFO传输结构。参见@ref flexcan_fifo_transfer_t。
返回值:kStatus_Success 启动Rx FIFO接收进程成功
返回值:kStatus_FLEXCAN_RxFifoBusy Rx FIFO目前正在使用中

8、使用IRQ接收CAN消息

函 数 :status_t FLEXCAN_TransferReceiveNonBlocking(CAN_Type *base, flexcan_handle_t *handle, flexcan_mb_transfer_t *pMbXfer);
说 明 :此函数使用IRQ接收消息。这是一个非阻塞函数,它会立即返回。当消息被接收时,将调用receive回调函数。
参 数 :base FlexCAN外设基地址
参 数 :handle FlexCAN句柄指针
参 数 :pMbXfer FlexCAN消息缓冲区传输结构。参见#flexcan_mb_transfer_t。
返回值:kStatus_Success 启动消息缓存接收进程成功
返回值:kStatus_FLEXCAN_RxBusy 接收消息的缓存正在使用

9、使用IRQ发送消息

函 数 :status_t FLEXCAN_TransferSendNonBlocking(CAN_Type *base, flexcan_handle_t *handle, flexcan_mb_transfer_t *pMbXfer);
说 明 :这个函数使用IRQ发送消息。这是一个非阻塞函数,它会立即返回。当消息发出后,send回调函数被调用。
参 数 :base FlexCAN外设基地址
参 数 :handle FlexCAN句柄指针
参 数 :pMbXfer FlexCAN消息缓冲区传输结构。参见#flexcan_mb_transfer_t。
返回值:kStatus_Success 启动消息缓存发送进程成功
返回值:kStatus_FLEXCAN_RxBusy 发送消息的缓存正在使用

10、初始化FlexCAN句柄

函 数 :void FLEXCAN_TransferCreateHandle(CAN_Type *base, flexcan_handle_t *handle, flexcan_transfer_callback_t callback, void *userData);
说 明 :这个函数初始化FlexCAN句柄,它可以用于其他FlexCAN事务性api。通常,对于指定的FlexCAN实例,调用此API一次以获得初始化句柄。
参 数 :base FlexCAN外设基地址
参 数 :handle FlexCAN句柄指针
参 数 :callback 回调函数
参 数 :userData 回调函数的参数。
返回值:无

未完,待续……

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



http://www.chinasem.cn/article/1054830

相关文章

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. 数据分

MySQL数据库的内嵌函数和联合查询实例代码

《MySQL数据库的内嵌函数和联合查询实例代码》联合查询是一种将多个查询结果组合在一起的方法,通常使用UNION、UNIONALL、INTERSECT和EXCEPT关键字,下面:本文主要介绍MyS... 目录一.数据库的内嵌函数1.1聚合函数COUNT([DISTINCT] expr)SUM([DISTIN

Python get()函数用法案例详解

《Pythonget()函数用法案例详解》在Python中,get()是字典(dict)类型的内置方法,用于安全地获取字典中指定键对应的值,它的核心作用是避免因访问不存在的键而引发KeyError错... 目录简介基本语法一、用法二、案例:安全访问未知键三、案例:配置参数默认值简介python是一种高级编

python 常见数学公式函数使用详解(最新推荐)

《python常见数学公式函数使用详解(最新推荐)》文章介绍了Python的数学计算工具,涵盖内置函数、math/cmath标准库及numpy/scipy/sympy第三方库,支持从基础算术到复杂数... 目录python 数学公式与函数大全1. 基本数学运算1.1 算术运算1.2 分数与小数2. 数学函数

Maven中的profiles使用及说明

《Maven中的profiles使用及说明》:本文主要介绍Maven中的profiles使用及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录主要用途定义 Profiles示例:多环境配置激活 Profiles示例:资源过滤示例:依赖管理总结Maven 中的

Before和BeforeClass的区别及说明

《Before和BeforeClass的区别及说明》:本文主要介绍Before和BeforeClass的区别及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Before和BeforeClass的区别一个简单的例子当运行这个测试类时总结Before和Befor