CAN2无法通信问题

文章目录

    • 一、CAN2通信要注意的问题
    • 二、CAN中断无法进入的问题

一、CAN2通信要注意的问题

在这里插入图片描述

从这张图片不难看出can1为主机,can2为从机。因此can2的启动前提是已经启动了can1.
can通讯can2是基于can1的
使用can2之前必须初始化can1
单独使用CAN2时一定要同时打开CAN1和CAN2的时钟,否则CAN2无法正常工作,因为CAN2是从CAN,CAN1是主CAN
因此举例如果使用FIFO0的话,将筛选器分配:
can1的筛选器组就从0开始 范围为0-14
CAN_FilterInitStructure.CAN_FilterNumber=0;
can2的筛选器组就从14开始 范围为14-27
CAN_FilterInitStructure.CAN_FilterNumber=14;
注意:can过滤器配置必须用16进制
如果还是不能用,就要检查CAN芯片的STB引脚是否使能了!!!,这个很重要!
当can正常工作时,STB引脚为低电平,当STB引脚为高电平的时候,CAN总线闲置

void can_filter(CAN_HandleTypeDef* hcan)
{CAN_FilterTypeDef		CAN_FilterConfigStructure;if (hcan == &hcan2){CAN_FilterConfigStructure.FilterBank = 14;//***********************!!}if (hcan == &hcan1){CAN_FilterConfigStructure.FilterBank = 0;}CAN_FilterConfigStructure.FilterMode = CAN_FILTERMODE_IDMASK;CAN_FilterConfigStructure.FilterScale = CAN_FILTERSCALE_32BIT;CAN_FilterConfigStructure.FilterIdHigh = 0x0000;CAN_FilterConfigStructure.FilterIdLow = 0x0000;CAN_FilterConfigStructure.FilterMaskIdHigh = 0x0000;CAN_FilterConfigStructure.FilterMaskIdLow = 0x0000;CAN_FilterConfigStructure.FilterFIFOAssignment = CAN_RX_FIFO0;CAN_FilterConfigStructure.SlaveStartFilterBank = 14;CAN_FilterConfigStructure.FilterActivation = ENABLE;HAL_CAN_ConfigFilter(hcan, &CAN_FilterConfigStructure);      
}
  MX_CAN1_Init();//先初始化can1!!!!!MX_CAN2_Init();can_filter(hcan1);can_filter(hcan2);

二、CAN中断无法进入的问题

当邮箱一直被占用后,导致CAN通讯有问题,作为一种保护机制,应该重新进行初始化CAN
问题由来-最近一直在做16s智能电池的通信,可是无人机突然显示hub电压24v(此hub只支持2s-12s电池,无法显示16s电池电压),容易造成低电压返航,实际电压却依旧是64v
一直怀疑是crc校验的问题,最后用fdr进行数据记录,发现是不进电池中断,再往上查发现是整个CAN2中断都不进
所以查问题不要局限于自己的一面,有可能不是自己的问题,逐步扩大排查

  transmit_timeout = 0;while(!(((CANx->TSR)&CAN_TSR_TME0)&&((CANx->TSR)&CAN_TSR_TME1) &&((CANx->TSR)&CAN_TSR_TME2))){transmit_timeout++;if(transmit_timeout == 65535){    if(CANx == CAN1){CAN_DeInit(CAN1);CAN_DeInit(CAN2);CAN1_Mode_Init(CAN_SJW_1tq,CAN_BS2_6tq,CAN_BS1_7tq,6,CAN_Mode_Normal);}else{  CAN_DeInit(CAN2);CAN2_Mode_Init(CAN_SJW_1tq,CAN_BS2_6tq,CAN_BS1_7tq,6,CAN_Mode_Normal);} }}}

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

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

相关文章

52基于MATLAB的希尔伯特Hilbert变换求包络谱

基于MATLAB的希尔伯特Hilbert变换求包络谱,对原始信号进行初步滤波,之后进行包络谱分析。可替换自己的数据进行优化。程序已调通,可直接运行。 52的尔伯特Hilbert变换包络谱 (xiaohongshu.com)

股票融资科普:融资融券对散户好不好?为何?

股票融资融券是一种常见的股票交易方式,它可以让投资者通过借入资金来购买股票,或借入股票来卖空股票,从而获得投资收益。但是,对于散户来说,融资融券到底是好是坏呢?下面将从几个方面来解析。 首先&#x…

Elastic Observability 8.11:ES|QL、APM 中的通用分析和增强的 SLOs

作者:Tom Grabowski, Katrin Freihofner, Israel Ogbole Elastic Observability 8.11 引入了 ES|QL for Observability(技术预览版)、Universal ProfilingTM 和 Elastic APM 集成,以及针对 Elastic Observability 的新 SLO &#…

使用c++17std库varaint替代varaint开源库报错处理

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、pandas是什么?二、使用步骤 1.引入库2.读入数据总结 前言 提示:这里可以添加本文要记录的大概内容: 例如:…

相机滤镜软件Nevercenter CameraBag Photo mac中文版特点介绍

Nevercenter CameraBag Photo mac是一款相机和滤镜应用程序,它提供了一系列先进的滤镜、调整工具和预设,可以帮助用户快速地优化和编辑照片。 Nevercenter CameraBag Photo mac软件特点介绍 1. 滤镜:Nevercenter CameraBag Photo提供了超过2…

立体库堆垛机取货动作控制程序功能

取货动作功能块 为左出货台有货 DB11.DBX0.0 左出货台车就位 DB11.DBX0.2 右出货台车就位 DB11.DBX1.2 为右出货台有货 DB11.DBX1.0 左出货台车就位 DB11.DBX0.2 右出货台车就位 DB11.DBX1.2 T20上升保护时间

【C++干货铺】初识模板

个人主页点击直达:小白不是程序媛 C系列专栏:C干货铺 代码仓库:Gitee 目录 泛型编程 函数模板 函数模板格式 函数模板原理 函数模板实例化 模板参数的匹配原则 类模板 定义格式 类模板的实例化 泛型编程 什么是泛型? …

麒麟v10 安装jenkins

1.想安装哪个版本? https://pkg.jenkins.io/redhat-stable/ 我们查看我们想要哪个版本: 4年前安装的是 Jenkins2.279 版本 现在在docker 上安装的是Version 2.425 版本 2.碰到到的问题 1.安装老版本的Jenkins,会出现安装的插件不兼容&…

【前段基础入门之】=>CSS3新特性 文本多列 布局

概述: 作用:专门用于实现类似于报纸的布局。属于是一行文本多列布局 属性/值描述column-count 指定列数,值是数字。column-width指定列宽,值是长度单位columns同时指定列宽和列数,复合属性;值没有数量和顺序…

Python基础教程之七:Python字符串操作

在Python中,string文字是: 代表Unicode字符的字节数组用单引号或双引号引起来无限长度 字符串文字 str hello worldstr "hello world"一个多行字符串使用三个单引号或三个双引号创建的。 多行字符串文字 str Say helloto pythonprogra…

Spring Cloud - 通过 Gateway webflux 编程实现网关异常处理

一、webflux 编程实现网关异常处理 我们知道在某一个服务中出现异常,可以通过 ControllerAdvice ExceptionHandler 来统一异常处理,即使是在微服务架构中,我们也可以将上述统一异常处理放入到公共的微服务中,这样哪一个微服务需要…

LangChain之关于RetrievalQA input_variables 的定义与使用

最近在使用LangChain来做一个LLMs和KBs结合的小Demo玩玩,也就是RAG(Retrieval Augmented Generation)。 这部分的内容其实在LangChain的官网已经给出了流程图。 我这里就直接偷懒了,准备对Webui的项目进行复刻练习,那么…

多语言多商户多货币跨境电商商城源码(一键铺货\订单返现商城源码搭建开发)

随着全球化的加速和互联网的蓬勃发展,跨境电商已成为越来越多企业的必经之路。如何在竞争激烈的市场中脱颖而出,实现多语言、多商户的跨境商城运营,成为了很多电商企业亟待解决的问题。今天,我们将为您揭示一款多语言多商户跨境商…

2023年11月数据库流行度最新排名

点击查看最新数据库流行度最新排名(每月更新) 2023年11月数据库流行度最新排名 TOP DB顶级数据库索引是通过分析在谷歌上搜索数据库名称的频率来创建的 一个数据库被搜索的次数越多,这个数据库就被认为越受欢迎。这是一个领先指标。原始数…

开源DB-GPT实现连接数据库详细步骤

官方文档:欢迎来到DB-GPT中文文档 — DB-GPT 👏👏 0.4.1 第一步:安装Minicoda https://docs.conda.io/en/latest/miniconda.html 第二步:安装Git Git - Downloading Package 第三步:安装embedding 模型到…

seata事务回滚引起的skywalking数据库存储空间剧增的问题排查

基本信息 产品名称:ATS3.0 问题分类:编码问题 环境类型:环境无关 问题现象 11月1日上午华润DBA收到数据库磁盘空间告警,检查后发现skywalking连接的mysql数据库占用空间从之前一直是比较稳定的,但是10月31日…

antd Form 校验自定义复杂判断-validator

antd Form 校验 加入自定义复杂逻辑 <Form.Itemlabel"编码"name"code"rules{[{required: true,validator: (_rule, value) > {if (value ) {return Promise.reject(请输入编码);}return IsExist(value).then((res) > {if (res?.statusCode 20…

强化学习中广义策略迭代

一、广义策略迭代 策略迭代包括两个同时进行的交互过程&#xff0c;一个使价值函数与当前策略保持一致&#xff08;策略评估&#xff09;&#xff0c;另一个使策略在当前价值函数下变得贪婪&#xff08;策略改进&#xff09;。在策略迭代中&#xff0c;这两个过程交替进行&…

【Qt之QAssociativeIterable】使用

介绍 QAssociativeIterable类是QVariant中一个关联式容器的可迭代接口。这个类允许多种访问在QVariant中保存的关联式容器元素的方法。如果一个QVariant可以转换为QVariantHash或QVariantMap&#xff0c;那么QAssociativeIterable的实例可以从中提取出来。 QHash<int, QSt…

软件版本控制系统VCS工具——cvs vss svn git

版本控制 版本控制系统&#xff08;Version Control System&#xff0c;VCS&#xff09;是用于跟踪和管理源代码和文档的工具。可追踪和管理修改历史&#xff0c;包括修改的内容、时间、作者等信息。有助于团队协作、追踪变更、恢复历史版本等。VCS的主要目的是帮助团队协作开…