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

STM32F103_HAL库+寄存器学习笔记15 - 梳理CAN发送失败时,涉及哪些寄存器

导言


《STM32F103_LL库+寄存器学习笔记14 - CAN发送完成中断》上一章节完成CAN发送完成中断,在梳理二级发送缓存之前,先梳理怎样监控CAN发送失败。
在这里插入图片描述
如上所示:

  1. 当我关掉CAN分析仪的CAN通道1,CAN错误状态寄存器CAN_ESR的TEC(发送错误计数器)持续递增,且最终递增至最大值0x80(十进制128)。此时,EPVF(错误被动标志)与EWGF(错误警告标志)都被置1。
  2. 当我关掉CAN分析仪的CAN通道1,CAN错误状态寄存器CAN_ESR的TEC(发送错误计数器)开始递增时,LEC(上次错误代码)等于0x03(ACK错误)。
  3. 当我重新开启CAN分析仪的CAN通道1,CAN错误状态寄存器CAN_ESR的TEC(发送错误计数器)持续递减,且最终递减至0。此时,EPVF(错误被动标志)与EWGF(错误警告标志)与LEC(上次错误代码)都被置0。

项目地址:

  • 寄存器方式:https://github.com/q164129345/MCU_Develop/tree/main/stm32f103_ll_library14_Can_Send_Interrupt
  • HAL库方式:https://github.com/q164129345/MCU_Develop/tree/main/stm32f103_hal_library14_Can_Send_Interrupt

一、梳理寄存器


1.1、CAN错误状态寄存器CAN_ESR

在这里插入图片描述
在这里插入图片描述

如上所示:

  1. 跟CAN发送相关的是TEC(9位发送错误计数器)。正如上面的gif动图所示,发送失败一次,TEC会快速+8。发送成功一次,TEC会减1。
  2. LEC(上次错误代码)、EPVF(错误被动标志)、EWGF(错误警告标志)跟CAN接收与CAN发送都有关系。

1.2、TEC递增至128,不再递增

在这里插入图片描述
如上所示,让CAN分析仪关闭,总线只有STM32F103一个CAN节点。此时,STM32F103往CAN总线上发送CAN消息时,会触发确认ACK错误(TEC=0x03)。因为没有另外的CAN节点回复ACK。
在这里插入图片描述
如上所示,因为确认ACK错误(TEC = 0x03)导致的发送失败,TEC递增至十六进制的0x80(十进制128)。此时,不会再递增了。

1.3、TEC会在什么情况下突破128,递增至200多?触发Bus-off离线?

在这里插入图片描述
在这里插入图片描述
如上所示,当我用杜邦线将CANH、CANL短接后,TEC很快递增至0xF8(十进制248)。此时,寄存器CAN_ESR的BOFF(Bus-off离线标志)置1。CAN分析仪不再收到STM32F103开发板发出来的CAN消息,因为STM32F103开发板进入了离线模式。因为自身的问题(CANH与CANL出现了短路),不能干扰CAN总线,以免影响到其他CAN节点通讯。

1.4、触发Bus-off离线后,怎样恢复?

在这里插入图片描述
如上所示,从《STM32F1中文参考手册》的22.7.6章节看到,在进入Bus-off状态后,可以在自动或者在软件的请求下,从离线状态恢复。在下一章节,我会尝试用代码方式,解除离线状态恢复至正常工作状态。

原文地址:https://blog.csdn.net/wallace89/article/details/147182802
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mrgr.cn/news/98508.html

相关文章:

  • 实战指南:封装Whisper为FastAPI接口并实现高并发处理-附整合包
  • 欧拉服务器操作系统安装MySQL
  • 单片机 + 图像处理芯片 + TFT彩屏 触摸开关控件 v1.2
  • Transformer-PyTorch实战项目——文本分类
  • (劳特巴赫调试器学习笔记)四、Practice脚本.cmm文件编写
  • C++第三方库【JSON】nlohman/json
  • Cribl 数据脱敏 -02 (附 测试数据)
  • 如何评估cpu的理论FLOPS能力
  • Windows 下 MongoDB ZIP 版本安装指南
  • libaom 码率控制实验:从理论到实践的深度探索
  • ReportLab 导出 PDF(文档创建)
  • C++函数
  • 深入解析分类模型评估指标:ROC曲线、AUC值、F1分数与分类报告
  • VLLM V1 serve在线推理基本流程
  • gitdiagram源码架构分析
  • 协享云图分析--3用户模块
  • Cribl 数据脱敏 -02
  • 15.家庭影院,我选Jellyfin
  • 广汽滴滴Robotaxi首次亮相,中国自动驾驶加速领跑新赛道
  • Webflux声明式http客户端:Spring6原生HttpExchange实现,彻底摒弃feign