什么是CAN的BUS-OFF,如何恢复BUS-OFF?

CAN作为一款强大的工业总线,其高性能和高可靠性让其应用特别广泛。一个小知识:汽车里面各个模块之间的通讯就是使用CAN来实现的哦。

既然是总线,那当然会有多个设备挂载在CAN上,当一个设备在发送数据的时候,其他设备也没有在闲着,它们会对接收到的数据格式进行解析,一旦发现有错误就会发送错误信号到总线上。

那么,如果一个设备确实出现了问题,老是发出错误格式的帧(比如波特率有偏差等等)怎么办呢?嘿嘿,不等大家把它踢出局,它自己就会老老实实的退出总线,不再往总线上发数据了,这个就叫做BUS-OFF,也就是设备离线。

那么MCU如何触发这个BUS-OFF呢?我们以GD32F303为例来说明。GD32F303的CAN在发送一次错误的帧后,会将发送错误计数器的值+1,当这个计数值达到255时,就会触发BUS-OFF机制,退出总线。

这个时候有的小伙伴就会问了,一个设备运行很长时间,总会有发送错误的时候吧,如果就这么退出总线了,岂不是太冤了?其实不是的,当设备在发送错误计数器的值不等于0的情况下,发送一次正确的帧,这个计数值会-1的。

当一个设备BUS-OFF了,但它自恢复了错误状态,想继续回到总线上怎么操作呢?有两种方式:

1、打开GD32F303的离线自动恢复功能,当出现BUS-OFF,MCU在检测到离线恢复序列(在CAN_RX检测到128次连续11个位的隐性位  )后就会自动恢复。

2、如果没打开自动恢复功能,则需要让CAN进入到初始化模式,再进入正常工作模式即可。

以上即为本期讲解,如有问题或建议,欢迎评论区讨论。

更多GD32 MCU相关咨询:https://www.gd32bbs.com/

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

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

相关文章

基于STC8H4K64TL单片机的RTC(即实时时钟)功能调试

基于STC8H4K64TL单片机的RTC(即实时时钟)功能调试 STC8H4K64TL单片机介绍STC8H4K64TL单片机管脚图(48个引脚)STC8H4K64TL单片机串口仿真与串口通信STC8H4K64TL单片机管脚图(32个引脚)STC8H4K64TL单片机管脚图(20个引脚)STC8H系列单片机管脚说明STC8H系列单片机I/O口STC…

52、PHP 实现选择排序

题目&#xff1a; PHP 实现选择排序 描述&#xff1a; 先取一个小于n的整数d1作为第一个增量&#xff0c;把文件的全部记录分成d1个组。所有距离为dl的倍数的记录放在同一个组中。先在各组内进行直接插人排序&#xff1b;然后&#xff0c;取第二个增量d2<d1重复上述的分组…

大模型不会比大小和单词字母计数?日期计算也是一片混乱

9.9和9.11哪个大&#xff1f;13.8%和13.11%谁大谁小&#xff1f;这两个比大小的问题&#xff0c;前段时间难倒众多大模型&#xff0c;在网上掀起热议。 除此之外&#xff0c;向大模型提问“草莓&#xff08;strawberry&#xff09;这个单词有几个r时”&#xff0c;多家主流大模…

三目操作符

双目操作符有、-、*、/、% 单目操作符有--、、、- 三目操作符有表达式1&#xff1f;表达式2&#xff1a;表达式3 如果表达式1为真则表达式2计算否则表达式3计算&#xff0c;计算结果为整个表达式的结果 #include<stdio.h> int main() {int a 0;int b 0;scanf(&quo…

Doris-计算特性

1 全新优化器 1.1 如何开启1.2 统计信息 1.2.1 使用ANALYZE语句手动收集1.2.1 自动收集1.2.3 作业管理1.3 会话变量及配置项调优参数2 Join相关 2.1 支持的Join算子2.2 支持的shuffle方式 2.2.1 Broadcast Join2.2.2 Shuffle Join2.2.3 Bucket Shuffle Join 2.2.3.1 原理2.2.3.…

Linux笔记 --- 控制流

二路分支 逻辑&#xff1a; 程序中某一段代码需要满足一定的条件才会被执行 语法&#xff1a; if 语句&#xff1a; 表达一种 &#xff0c; 如果条件满足 则 执行某个代码块 if-else 语句&#xff1a; 表达一种 &#xff0c;如果 条将满足则执行某个代码块 否则执行 注意&…

浅学爬虫-HTML和CSS结构

HTML结构 HTML&#xff08;HyperText Markup Language&#xff09;是构建网页的基础语言。它通过标签&#xff08;Tags&#xff09;来定义网页的结构和内容。HTML文档的基本结构如下&#xff1a; <!DOCTYPE html> <html lang"en"><head><meta…

PHP反序列化漏洞从入门到深入8k图文介绍,以及phar伪协议的利用

文章参考&#xff1a;w肝了两天&#xff01;PHP反序列化漏洞从入门到深入8k图文介绍&#xff0c;以及phar伪协议的利用 前言 本文内容主要分为三个部分&#xff1a;原理详解、漏洞练习和防御方法。这是一篇针对PHP反序列化入门者的手把手教学文章&#xff0c;特别适合刚接触PH…

Linux用户-用户组管理

文章目录 14. Linux 用户 - 用户组管理14.1 用户-用户组概述14.2 查看用户登录14.3 用户和用户组配置文件概述14.4 用户账号配置文件信息14.5 用户账号管理14.6 用户密码管理14.7 用户密码配置文件14.8 用户删除14.9 用户组管理14.10 用户组文件信息14.11 用户深入管理 14. Lin…

Windows搭建我的世界MC服务器 【Minecraft外网联机教程】

目录 ⛳️推荐 1. 搭建我的世界服务器 1.1 服务器安装java环境 1.2 配置服务端 1.3 创建我的世界服务器 2. 局域网联机测试 3. 安装cpolar内网穿透 4. 公网联机Minecraft 5. 配置固定远程联机端口地址 ⛳️推荐 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通…

新手转行AI运营岗位,轻松实现月入15K+

近年来人工智能大爆发&#xff0c;各种AI产品层出不穷&#xff0c;市场也出现了一批高薪AI运营类岗位 不需要技术背景、门槛低&#xff0c;即便是新手&#xff0c;也有机会拿下offer。如果你计划今年跳槽或转行运营&#xff0c;这5个岗位不妨试试&#xff08;结尾附国内AI公司清…

科普文:万字梳理高性能 Kafka快的8个原因

概叙 科普文&#xff1a;万字详解Kafka基本原理和应用-CSDN博客 科普文&#xff1a;万字梳理31个Kafka问题-CSDN博客 我们都知道 Kafka 是基于磁盘进行存储的&#xff0c;但 Kafka 官方又称其具有高性能、高吞吐、低延时的特点&#xff0c;其吞吐量动辄几十上百万。 在座的…

【深度学习】kaggle使用

https://blog.csdn.net/2301_78630677/article/details/133834096 https://blog.csdn.net/xiaojia1001/article/details/139467176 https://www.kaggle.com/ 使用要挂代理&#xff0c;要不然可能无法注册 绑定手机号之后才能使用GPU 每周30h免费GPU使用时长 上传数据集 Ad…

安科瑞ACTB系列电流互感器过电压保护器

产品概述&#xff1a; 安科瑞ACTB系列电流互感器过电压保护器是一种重要的电力保护设备&#xff0c;‌主要用于防止电流互感器在运行中因二次绕组开路或一次绕组流过异常电流而在二次侧产生的高压过电压。‌这种保护器能有效防止因电流互感器二次侧异常高压引起的事故&#xf…

手撕数据结构---栈和队列的概念以及实现

栈的概念&#xff1a; 栈&#xff1a;⼀种特殊的线性表&#xff0c;其只允许在固定的⼀端进⾏插⼊和删除元素操作。进⾏数据插⼊和删除操作的⼀端称为栈顶&#xff0c;另⼀端称为栈底。栈中的数据元素遵守后进先出LIFO&#xff08;Last In First Out&#xff09;的原则。 压栈…

Kafka、RabbitMQ、RocketMQ:消息队列技术深度对比

文章目录 摘要1. 消息队列概述1.1 消息队列的作用 2. Kafka2.1 简介2.2 核心特性2.3 使用场景 3. RabbitMQ3.1 简介3.2 核心特性3.3 使用场景 4. RocketMQ4.1 简介4.2 核心特性4.3 使用场景 5. 技术对比5.1 吞吐量5.2 可靠性5.3 消息延迟5.4 消息顺序 6. 结语 摘要 消息队列是…

《框架》

《框架》 引言 在当今快速发展的技术世界中,框架(Framework)已成为软件开发中不可或缺的一部分。框架为开发者提供了一种结构化的方法来构建应用程序,从而提高开发效率、确保代码质量和维护性。本文将深入探讨框架的概念、类型、优势以及在现代软件开发中的应用。 什么是…

opencascade AIS_RubberBand AIS_RotationMode源码学习

//!相机旋转类型 Camera rotation mode. enum AIS_RotationMode { AIS_RotationMode_BndBoxActive, //!< default OCCT rotation AIS_RotationMode_PickLast, //!< rotate around last picked point AIS_RotationMode_PickCenter, //!< rotate around point at the ce…

广东省道路工程检测练习试题(单选406题)真题

1.一般项目的合格点率应达到( ),且不合格点的最大偏差值不得大于规定允许偏差值的1.5倍。 A.不低于75% B.不低于80% C.不低于85% D.不低于90% 答案:B 2.进行土路基平整度检测时,当路宽小于9m,检测点数应为( ) A.1 B.2 C.3 D.4 答案:A 3.根据《城镇道路工程施工…

python之代码简化式(列表、字典生成式,递归函数,迭代器(iter)和生成器(yield)、匿名函数(lambda)的使用)(12)

文章目录 前言1、列表、字典生成式2、递归函数2.1 python中代码的递归深度&#xff08;扩展&#xff09; 3、拓展&#xff1a;迭代器和生成器3.1 迭代器&#xff08;iter&#xff09;3.2 生成器&#xff08;yield&#xff09; 4、匿名函数&#xff08;lambda&#xff09;4.1 ma…