当前位置: 首页 > news >正文

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

概要

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

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

21、设置FlexCAN接收消息缓冲区的全局掩码

函 数 :void FLEXCAN_SetRxMbGlobalMask(CAN_Type *base, uint32_t mask);
说 明 :这个函数在匹配过程中为FlexCAN消息缓冲区设置全局掩码。该配置仅在FLEXCAN_Init()中禁用Rx个人掩码时有效。
参 数 :base FlexCAN外设基地址
参 数 :mask Rx Fifo全局掩码值。
返回值:无

22、设置FlexCAN经典CAN帧或CAN FD帧标称相位的比特率

函 数 :status_t FLEXCAN_SetBitRate(CAN_Type *base, uint32_t sourceClock_Hz, uint32_t bitRate_Bps);
说 明 :该函数基于FLEXCAN_CalculateImprovedTimingValues() API计算的定时值来设置经典CAN帧或CAN FD帧标称相位的比特率。
参 数 :base FlexCAN外设基地址
参 数 :sourceClock_Hz 时钟源(Hz)
参 数 :bitRate_Bps 比特率,单位为Bps
返回值:kStatus_Success 设置CAN波特率(仅标称相位)成功。

23、设置FlexCAN经典CAN协议定时特性

函 数 :void FLEXCAN_SetTimingConfig(CAN_Type *base, const flexcan_timing_config_t *pConfig);
说 明 :该功能为用户提供经典CAN或CAN FD标称相位定时特性的设置。该功能适用于有经验的用户。对于经验不足的用户,调用FLEXCAN_SetBitRate()代替。
调用FLEXCAN_SetTimingConfig()会覆盖在FLEXCAN_Init()或FLEXCAN_SetBitRate()中设置的比特率。
参 数 :base FlexCAN外设基地址
参 数 :pConfig 指向定时配置结构的指针
返回值:无

24、获取默认配置结构

函 数 :FLEXCAN_GetDefaultConfig(flexcan_config_t *pConfig);
说 明 :这个函数初始化FlexCAN配置结构为默认值。默认值如下:

 *   flexcanConfig->clkSrc                               = kFLEXCAN_ClkSrc0;*   flexcanConfig->bitRate                              = 1000000U;*   flexcanConfig->bitRateFD                            = 2000000U;*   flexcanConfig->maxMbNum                             = 16;*   flexcanConfig->enableLoopBack                       = false;*   flexcanConfig->enableSelfWakeup                     = false;*   flexcanConfig->enableIndividMask                    = false;*   flexcanConfig->disableSelfReception                 = false;*   flexcanConfig->enableListenOnlyMode                 = false;*   flexcanConfig->enableDoze                           = false;*   flexcanConfig->enableMemoryErrorControl             = true;*   flexcanConfig->enableNonCorrectableErrorEnterFreeze = true;*   flexcanConfig.timingConfig                          = timingConfig;

参 数 :mask Rx Fifo全局掩码值。
返回值:无

25、取消初始化FlexCAN。

函 数 :void FLEXCAN_Deinit(CAN_Type *base);
说 明 :该函数禁用FlexCAN模块时钟,并将所有寄存器值设置为重置值。
参 数 :base FlexCAN外设基地址
返回值:无

26、初始化FlexCAN

函 数 :void FLEXCAN_Init(CAN_Type *base, const flexcan_config_t *pConfig, uint32_t sourceClock_Hz);
说 明 :这个函数用用户定义的设置初始化FlexCAN模块。这个例子展示了如何设置flexcan_config_t参数,以及如何通过传递这些参数来调用FLEXCAN_Init函数。

 *  @code*   flexcan_config_t flexcanConfig;*   flexcanConfig.clkSrc               = kFLEXCAN_ClkSrc0;*   flexcanConfig.bitRate              = 1000000U;*   flexcanConfig.maxMbNum             = 16;*   flexcanConfig.enableLoopBack       = false;*   flexcanConfig.enableSelfWakeup     = false;*   flexcanConfig.enableIndividMask    = false;*   flexcanConfig.enableDoze           = false;*   flexcanConfig.disableSelfReception = false;*   flexcanConfig.enableListenOnlyMode = false;*   flexcanConfig.timingConfig         = timingConfig;*   FLEXCAN_Init(CAN0, &flexcanConfig, 40000000UL);*   @endcode

参 数 :base FlexCAN外设基地址
参 数 :pConfig 指向用户定义的配置结构的指针
参 数 :sourceClock_Hz FlexCAN协议设置时钟源频率,单位为Hz。
返回值:无

27、根据经典CAN的特定比特率计算改进的定时值

函 数 :bool FLEXCAN_CalculateImprovedTimingValues(CAN_Type *base, uint32_t bitRate, uint32_t sourceClock_Hz, flexcan_timing_config_t *pTimingConfig);
说 明 :这个函数用于根据给定的比特率计算经典CAN定时值。计算的计时值将在CTRL1/CBT/ENCBT寄存器中设置。该计算基于CiA 301 v4.2.0和以前版本文档的建议。
参 数 :base FlexCAN外设基地址
参 数 :bitRate 用户定义的经典CAN速度(以bps为单位)应小于或等于1Mbps。
参 数 :sourceClock_Hz 时钟源频率,单位为Hz。
参 数 :pTimingConfig 指向FlexCAN定时配置结构的指针。
返回值:如果找到时序配置,则为TRUE,如果没有找到配置,则为FALSE。

28、从外设基址获取FlexCAN实例

函 数 :uint32_t FLEXCAN_GetInstance(CAN_Type *base);
说 明 :
参 数 :base FlexCAN外设基地址
返回值:无

29、退出FlexCAN冻结模式

函 数 :void FLEXCAN_ExitFreezeMode(CAN_Type *base);
说 明 :这个函数使FlexCAN退出冻结模式。
参 数 :base FlexCAN外设基地址
返回值:无

30、进入FlexCAN冻结模式

函 数 :void FLEXCAN_EnterFreezeMode(CAN_Type *base);
说 明 :这个功能使FlexCAN进入冻结模式。
参 数 :base FlexCAN外设基地址
返回值:无

结束

相关文章:

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

概要 CAN测试源码: https://download.csdn.net/download/qq_35671135/89425377 根据fsl_flexcan.h文件从文件末尾往前面梳理,总共30个基础CAN函数; 该文章只梳理常规CAN,增强型CAN后面再单独梳理。 使用的是RT1064开发板进行测试…...

2024年第三届数据统计与分析竞赛(B题)数学建模完整思路+完整代码全解全析

你是否在寻找数学建模比赛的突破点?数学建模进阶思路! 详细请查 作为经验丰富的数学建模团队,我们将为你带来2024年第三届数据统计与分析竞赛(B题)的全面解析。这个解决方案包不仅包括完整的代码实现,还有…...

高通Android 12 右边导航栏改成底部显示

最近同事说需要修改右边导航栏到底部,问怎么搞?然后看下源码尝试下。 1、Android 12修改代码路径 frameworks/base/services/core/java/com/android/server/wm/DisplayPolicy.java a/frameworks/base/services/core/java/com/android/server/wm/Display…...

2.6数据报与虚电路

数据报 当作为通信子网用户的端系统要发送一个报文时,在端系统中实现的高层协议先把报文拆成若干个带有序号的数据单元,并在网络层加上地址等控制信息后形成数据报分组(即网络层PDU)中间结点存储分组一段很短的时间,找到最佳的路由后&#x…...

小主机折腾记26

双独立显卡调用问题 前两天将tesla p4从x99大板上拆了下来,将880G5twr上的rx480 4g安装到了x99大板上,预计是dg1输出,rx480做3d运算。安装完驱动后,还想着按照之前tesla p4的设置方法去设置rx480,结果果然&#xff0c…...

ArrayList浅析

目录 一、ArrayList源码1.1 迭代器1.1.1 Itr源码浅析1.1.2 ListItr源码浅析 1.2 常用方法1.3 System.arraycopy1.4 ArrayList 的创建方式 二、引申问题2.1 ArrayList的大小是如何增加的?2.2 什么情况下你会使用ArrayList2.3 在索引中ArrayList的增加或者删除某个对象…...

Spring Boot整合hibernate-validator实现数据校验

文章目录 概念基本概念常用校验注解 前置内容整合Hibernate Validator快速入门优雅处理参数校验异常其余注解校验自定义校验注解 参考来源 概念 基本概念 Hibernate Validator 是一个参数校验框架,可以非常方便地帮助我们校验应用程序的入参,实现了参数…...

Ubuntu系统中网易云音乐编译安装

项目地址: netease-cloud-music-gtk: Linux 平台下基于 Rust GTK 开发的网易云音乐播放器 目录 1.README.md中按照步骤来 2.安装git 3.报错 sudo apt install cmake sudo apt-get install libdbus-1-dev sudo apt install dnf sudo dnf install gettext 继…...

MPLS标签号

标签被压入在2层与3层之间 称为 2.5层 标签的格式----32 位4 个字节 前 20 位为标签号,2~20 个标签号;其中1-15号保留,作为特殊编号; 第 21-23位 exp,3位8个数,为优先级,用于Q0S 策略使用&a…...

OpenHarmony napi 编译 .so 并打包成 .har

一、前言 最近在搞公司标准产品适配OpenHarmony 平台, 按照行业上的常用方法,在Android 是将底层代码用c 封装成 xxx.so ,然后将其他一部分打包成 xxx.jar。 因此,在OpenHarmony 平台也是打算按照这个模式。正所谓,好…...

python 循环导入(circular imports)解决方法

在 Python 中,大部分人都应该都遇到过循环导入的问题。 循环导入是指两个文件各自尝试导入另一个文件(模块),当一个模块没有完全初始化时会导致失败。解决这种情况的最好方法是将代码分层组织,这样导入的关系就会自然…...

01、Linux网络设置

目录 1.1 查看及测试网络 1.1.1 查看网络配置 1、查看网络接口地址 2、查看主机状态 3、查看路由表条目 4、查看网络连接qing 1.1.2 测试网络连接 1.测试网络连接 2.跟踪数据包的路由路径 3.测试DNS域名解析 1.2 设置网络地址参数 1.2.1 使用网络配置命令 1.修改网卡…...

ssm160基于Java技术的会员制度管理的商品营销系统的设计与实现+vue

商品营销系统计与实现 摘 要 现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本商品营销系统就是在这样的大环境下诞生,其可以帮助管理者在短时间内处理…...

边缘计算网关在智慧厕所远程监测与管理的应用

随着智慧城市建设的不断深入,城市公共设施的智慧化管理成为了提升城市品质和居民生活质量的关键建设。公厕作为城市基础设施的重要组成部分,其管理效率和卫生状况直接影响着市民的日常生活体验。在公厕设施建设背景下,边缘计算网关技术的应用…...

嵌入式linux中设备树使用of函数操作基本方法

各位开发者大家好,今天主要给大家分享一下,如何使用of操作函数,获取对应设备树节点先关的属性信息。 第一:of_find_property函数 of_find_property 函数用于在设备树中查找节点下具有指定名称的属性。如果找到了该属性,可以通过返回的属性结构体指针进行进一步的操作,比…...

10.GLM

智谱AI GLM 大模型家族 最强基座模型 GLM-130B GLM (General Language Model Pretraining with Autoregressive Blank Infilling) 基于自回归空白填充的通用语言模型(GLM)。GLM通过增加二维位置编码并允许以任意顺序预测跨度来改进空白填充预训练&…...

【深度学习】Transformer分类器,CICIDS2017,入侵检测,随机森林、RFE、全连接神经网络

文章目录 1 前言2 随机森林训练3 递归特征消除 RFE Recursive feature elimination4 DNN5 Transformer5.1. 输入嵌入层(Input Embedding Layer)5.2. 位置编码层(Positional Encoding Layer)5.3. Transformer编码器层(T…...

pdf压缩到指定大小的简单方法

压缩PDF文件是许多人在日常工作和学习中经常需要面对的问题。PDF文件因其跨平台、易阅读的特性而广受欢迎,但有时候文件体积过大,会给传输和存储带来不便。因此,学会如何有效地压缩PDF文件,就显得尤为重要。本文将详细介绍几种常见…...

关于FPGA对 DDR4 (MT40A256M16)的读写控制 I

关于FPGA对 DDR4 (MT40A256M16)的读写控制 I 语言 :Verilg HDL EDA工具:ISE、Vivado 关于FPGA对 DDR4 (MT40A256M16)的读写控制 I一、引言二、DDR4的特性(MT40A256M16)(1…...

JavaWeb_SpringBootWeb案例

环境搭建: 开发规范 接口风格-Restful: 统一响应结果-Result: 开发流程: 第一步应该根据需求定义表结构和定义接口文档 注意: 本文代码从上往下一直添加功能,后面的模块下的代码包括前面的模块&#xff0c…...

Linux中FTP安装

文章目录 一、FTP介绍1.1、FTP是什么1.2、FTP的工作原理1.3、FTP的传输模式1.4、FTP用户类别1.5、FTP的优点与缺点1.6、FTP数据传输格式 二、FTP客户端与服务端2.1、服务端2.2、客户端 三、FTP服务器软件介绍3.1、WU-FTPD3.2、ProFtpD3.3、vsftpd3.4、Pure-FTP3.5、FileZilla S…...

【Spring EL<二>✈️✈️ 】SL 表达式结合 AOP 注解实现鉴权

目录 🍻前言 🍸一、鉴权(Authorization) 🍺二、功能实现 2.1 环境准备 2.2 代码实现 2.3 测试接口 🍹三、测试功能 3.1 传递 admin 请求 ​ 3.2 传递普通 user 请求 🍻四、章末 &a…...

冯喜运:6.13美盘外汇黄金原油趋势分析及操作策略

【黄金消息面分析】:美国5月生产者价格指数(PPI)的意外下降,为市场带来了通胀可能见顶的积极信号。与此同时,初请失业金人数的上升,为劳动力市场的现状增添了一层不确定性。美国劳工统计局公布的数据显示&a…...

Lecture2——最优化问题建模

一,建模 1,重要性 实际上,我们并没有得到一个数学公式——通常问题是由某个领域的专家口头描述的。能够将问题转换成数学公式非常重要。建模并不是一件容易的事:有时,我们不仅想找到一个公式,还想找到一个…...

unidbg讲解V1

前言 unidbg是什么? unidbg是一个Java项目,可以帮助我们去模拟一个安卓或IOS设备,用于去执行so文件中的算法,从而不需要再去逆向他内部的算法。最终会产出一个jar包,可以被python进行调用。 如何使用unidbg? 下载github上开源的项目:https://github.com/zhkl0228/un…...

软设之敏捷方法

敏捷方法的总体目标是通过尽可能早地,持续地对有价值的软黏的交付,使客户满意 适用于:小步快跑的思想,适合小项目小团队 极限编程XP 4大价值观: 沟通 简单 反馈 勇气 5大原则 快速反馈 简单性假设 逐步修改…...

【设计模式深度剖析】【7】【行为型】【观察者模式】

👈️上一篇:中介者模式 设计模式-专栏👈️ 文章目录 观察者模式英文原文直译如何理解? 观察者模式的角色类图代码示例 观察者模式的应用观察者模式的优点观察者模式的缺点观察者模式的使用场景 观察者模式 观察者模式(Observer…...

列表的C++实

自动扩容 List item 扩容基数为2 可以设置扩容因子&#xff08;这里我没有设置&#xff09; 代码实现如下: // // Created by shaoxinHe on 2024/6/4. //#ifndef CPRIMER_MYLIST_H #define CPRIMER_MYLIST_H#include <stdexcept> #include <vector>namespace st…...

Chisel入门——在windows系统下部署Chisel环境并点亮FPGA小灯等实验

Chisel入门——在windows系统下部署Chisel环境并点亮FPGA小灯等实验 一、chisel简介二、vscode搭建scala开发环境2.1 安装Scala官方插件2.2 java版本&#xff08;本人用的是jdk18&#xff09;2.3 下载Scala Windows版本的二进制文件2.4 配置环境变量2.5 scala测试2.6 vscode运行…...

Python和C++赋值共享内存、Python函数传址传值、一些其他的遇到的bug

1、Numpy共享内存的情况&#xff1a; array1 np.array([1, 2, 3]) array2 array1 array2[0] 0 # array1也会跟着改变&#xff0c;就地操作 array2 array2 * 2 # array2不会跟着改变&#xff0c;属于非就地操作&#xff0c;会创建一个新的地址给array2array2 array1…...