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

概要

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

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

1、中止中断驱动的消息接收进程(CAN FD)

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

2、中止中断驱动的消息发送进程(CAN FD)

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

3、使用IRQ接收CAN FD消息。

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

4、使用IRQ发送CAN FD消息。

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

5、在CAN总线上执行轮询接收事务(CAN FD)

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

6、在CAN总线上执行轮询发送事务(CAN FD)

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

7、从接收消息缓冲区中读取FlexCAN FD消息。

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

8、将FlexCAN FD消息写入发送消息缓冲区。

函 数 :status_t FLEXCAN_WriteFDTxMb(CAN_Type *base, uint8_t mbIdx, const flexcan_fd_frame_t *pTxFrame);
说 明 :该函数将CAN - FD消息写入指定的Transmit Message Buffer,并改变Message Buffer的状态,开始CAN - FD消息的发送。函数立即返回。
参 数 :base FlexCAN外设基地址
参 数 :mbIdx FlexCAN FD消息缓冲区索引。
参 数 :pRxFrame 指向要发送的CAN FD消息帧的指针。
返回值:kStatus_Success 写Tx消息缓冲区成功。
kStatus_Fail Tx消息缓冲区正在使用中

9、配置FlexCAN接收消息缓冲区。(CAN FD)

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

10、配置FlexCAN发送消息缓冲区。(CAN FD)

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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

揭示优化Prompt的秘诀:如何让API表现媲美网页版

为什么用GPT API(GPT-3.5-turbo)进行程序分析时,效果好像比网页版的GPT-3.5差一点?这可能有几个原因,咱们细说一下。 1. Prompt不同 这是最常见的问题之一。API调用时的指令(prompt)往往比较简…

Ceil()——向上取整函数

函数原型为: double ceil(double x); 大家可以在这个网站里更清晰的了解ceil - C Reference (cplusplus.com) 下面借助一道例题来帮助大家理解:牛牛的快递_牛客题霸_牛客网 (nowcoder.com) 我们分析题得知,在大于1的情况下,只要…

学懂C#编程:常用高级技术——学会Lambda表达式的应用(二)

上一篇介绍了Lambda基础的知识,接着我们通过讲解Lambda的几种应用场景来彻底学懂Lambda在编程中的应用。 Lambda表达式在C#中非常灵活,可以用在多种场合。以下是一些Lambda表达式示例,帮助你更全面地理解其用途: 1. 数组过滤&am…

【ocean】ocnPrin结合getData导出数据

核心就是这一句ocnPrint(?output fout leafValue( getData(“/output” ?result “dc”))) r_list list(4000, 4100, 4200) multi_list list(20,21,22) fout outfile("/home/yourpath/results.txt" "w") foreach(r_value r_listforeach(multi_value …

【Linux基础命令】文件管理命令(二)

文章目录 前言创建删除目录创建目录删除目录cp命令mv命令查看文件内容总结前言 在我们的上一篇文章中,我们介绍了一些基本的Linux文件管理命令,如 cd、ls 等。这些命令对于日常的文件操作任务非常有用。然而,Linux 提供的功能远不止这些。在本文中,我们将继续探索更多的文…

【unity实战】制作unity数据保存和加载系统——大型游戏存储的最优解

最终效果 文章目录 最终效果前言存储位置信息存储更多数据存储场景信息持久化存储数据完结 前言 前面写过小型游戏存储功能: 【unity实战】制作unity数据保存和加载系统——小型游戏存储的最优解(包含数据安全处理方案的加密解密) 这次做一…

基于RK3568车载电脑助力日本巴士公司高效完成巴士到站系统项目部署

无处不在的物联网(IoT)技术已经渗透到了人类生活的各个角落,如日常出行乘坐的公交车上,物联网(IoT)技术的应用就得到完美诠释!其通过公交车上的车载电脑网络与中控室服务器连接来对公交车的运行…

Vue-Ci搭建项目

项目创建 vue-cli 官方提供的一个脚手架,用于快速生成一个vue的项目模板;预先定义 好的目录结构及基础代码,就好比咱们在创建Maven项目时可以选择创建一个 骨架项目,这个骨架项目就是脚手架,我们的开发更加的快速; 主要的功能 ● 统一的目录结构 ● 本地调试 热部署 ● 单元…

Rust详解日志

详解日志 相比起监控,日志好理解的多:在某个时间点向指定的地方输出一条信息,里面记录着重要性、时间、地点和发生的事件,这就是日志。 注意,本文和 Rust 无关,我们争取从一个中立的角度去介绍何为日志 日…

低代码开发平台:人人都可以开发应用

低代码开发平台是一种快速应用开发工具,它允许用户通过图形界面和模型驱动逻辑来构建应用程序,而不需要编写大量的代码。这种平台的目的是简化开发流程,降低技术门槛,使得非专业开发者也能快速构建应用程序。 低代码开发的优势 低…

IBM Spectrum LSF Application Center 提供单一界面来管理应用程序、用户、资源和数据

IBM Spectrum LSF Application Center 提供单一界面来管理应用程序、用户、资源和数据 亮点 ● 简化应用程序管理 ● 提高您的工作效率 ● 降低资源管理的复杂性 ● 深入了解流程 IBM Spectrum LSF Application Center 为集群用户和管理员提供了一个灵活的、以应用为中心的界…

openwrt igmp 适配

每弄完一次,过不多久就忘了,这次决心记下来。 openwrt 的igmpproxy 包是干嘛的?原来,组播包并不能穿透路由,也就是我们在wan端播放的组播视频流,lan端是没法收到的,igmpproxy就是用来打通wan端…

2024.6.26 刷题总结

2024.6.26 **每日一题** 526.优美的排列,该题考察的是状压dp的知识,用一个n位的二进制数表示排列中的数被选取的情况,若为1,则表示该位被选取,若为0,则表示该位没有被选取,用一个数组来存储当前…

STM32F1+HAL库+FreeTOTS学习1——FreeRTOS入门

STM32F1HAL库FreeTOTS学习1——FreeRTOS入门 裸机开发与操作系统嵌入式操作系统简介FreeRTOS简介FreeRTOS的几个重要概念任务调度器任务状态状态列表 裸机开发与操作系统 在以往的嵌入式学习中,我们最常用的就是裸机开发,所谓裸机开发就是指在没有操作系…

力扣1541. 平衡括号字符串的最少插入次数

Problem: 1541. 平衡括号字符串的最少插入次数 文章目录 题目描述思路及解法复杂度Code 题目描述 思路及解法 Problem: 力扣921. 使括号有效的最少添加 类似于上述题目,不过此时一个左括号要和两个右括号配对 1.同理上述题目,遍历字符串时若遇见一个左括…

揭秘微生物社区的“社交网络”:基因组规模代谢模型(GEMs)的新前沿

当前,微生物群落的基因组组成和功能潜力通过宏基因组组装基因组(MAGs)的分析得以部分揭示,但其内在的代谢网络和相互作用机制仍充满未知。为此,科学家们开发了基因组规模的代谢模型(GEMs)&#…

一码多址与同义词解决方案

随着地址库中的数据不断的丰富,地址库中一码多址和同义词的数据也会越来越多,一码多址和同义词在统一地址管理平台中的概念并不相同。 一码多址指的是多个地址编码相同,例如通过民政地址找到编码,再通过编码找到房产地址描述。 本…

怎么把不同的文件做成二维码?多种文件类型在线生码的制作方法

扫码来展示文件是现在很多场景下会使用的一种内容展示方法,这种方式能够简化其他人获取文件的流程,从而提升文件传播的效率,用户可以存储二维码,随时扫码查看文件内容。文件生成二维码支持多种类型的文件使用,比如ppt、…

信号与系统实验-实验五 离散时间系统的时域分析

一、实验目的 1、理解离散信号的定义与时域特征,掌握在时域求解信号的各种变换运算; 2、掌握离散系统的单位响应及其 MATLAB 实现的方法; 3、掌握离散时间序列卷积及其 MATLAB 实现的方法; 4、掌握利用 MATLAB 求解微分方程&a…

【数据库】Oracle安装报错(win10安装oracle提示环境不满足最低要求)

目录 一、问题场景: 二、问题描述 三、原因分析: 四、解决方案: 一、问题场景: 安装Oracle数据库 二、问题描述 安装之前提示( [INS-13001]环境不满足最低要求。 是否确实要继续? ) 如图所示&…