0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

STM32 CAN接收/发送错误寄存器如何清零?

工程师邓生 来源:未知 作者:刘芹 2023-09-14 14:22 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

STM32 CAN接收/发送错误寄存器如何清零?

CAN总线是一种常用的串行总线,其具有高可靠性、高速率、容错能力强等特点,广泛应用于汽车电子、制造业自动化、工程控制等领域。在CAN总线的标准中,每一个节点都有一个CAN控制器,CAN控制器通过内部寄存器和接口与CAN总线连接。其中,在CAN传输过程中,如果出现错误,会在CAN控制器内部错误寄存器中记录错误信息。因此,在使用STM32进行CAN接收/发送时,及时清零错误寄存器是非常重要的。

一、STM32的CAN错误寄存器

STM32是一款常用的单片机,内置了CAN控制器,其错误寄存器分为两种类型:

1.接收错误寄存器:即CAN接收错误寄存器,用于记录CAN接收过程中出现的错误信息;

2.发送错误寄存器:即CAN发送错误寄存器,用于记录CAN发送过程中出现的错误信息。

这两个寄存器都可以对系统诊断以及CAN总线的异常处理起到重要的作用。

二、接收错误寄存器的清零

在CAN接收过程中,很容易出现错误,这些错误会被记录在接收错误寄存器中。如果不及时清零错误寄存器,会影响后续的接收,并会对CAN节点的正常通讯产生影响。因此,在STM32进行CAN接收时,及时清零接收错误寄存器是非常重要的。

清零接收错误寄存器的方法如下:

首先,需要在代码中使能CAN接收错误中断,当出现错误时,会产生错误中断。其次,需要在接收错误中断函数中调用相应的错误寄存器清零函数。

在STM32的标准库中,可以通过以下代码清零CAN接收错误寄存器:

CAN_ClearFlag(CANx, CAN_FLAG_RQCP0);

其中,CANx表示CAN1或者CAN2,CAN_FLAG_RQCP0表示CAN接收错误寄存器中的错误标记。此函数会将接收错误寄存器中的标记位清零,以保证后续的接收正常进行。

三、发送错误寄存器的清零

在CAN发送过程中,也可能会发生错误。如果不及时清零发送错误寄存器,会影响后续的发送,并会对CAN节点的正常通讯产生影响。因此,在STM32进行CAN发送时,及时清零发送错误寄存器也是非常重要的。

清零发送错误寄存器的方法如下:

首先,需要在代码中使能CAN发送错误中断,当出现错误时,会产生错误中断。其次,需要在发送错误中断函数中调用相应的错误寄存器清零函数。

在STM32的标准库中,可以通过以下代码清零CAN发送错误寄存器:

CAN_ClearFlag(CANx, CAN_FLAG_TERR0);

其中,CANx表示CAN1或者CAN2,CAN_FLAG_TERR0表示CAN发送错误寄存器中的错误标记。此函数会将发送错误寄存器中的标记位清零,以保证后续的发送正常进行。

四、总结

CAN总线的应用范围非常广泛,其可靠性和容错能力强是其他总线不能比拟的。在STM32进行CAN接收/发送过程中,及时清零错误寄存器是非常重要的,它会对系统以及CAN总线轻松应对一些异常情况产生积极的作用。通过清零CAN接收/发送错误寄存器,可以提高系统的可靠性和稳定性,同时避免一些可能会出现的通信问题,确保应用能够顺利进行。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6078

    文章

    45581

    浏览量

    673737
  • 寄存器
    +关注

    关注

    31

    文章

    5620

    浏览量

    130423
  • CAN
    CAN
    +关注

    关注

    59

    文章

    3097

    浏览量

    473527
  • STM32
    +关注

    关注

    2313

    文章

    11195

    浏览量

    374671
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    CAN总线报错看不懂?5种错误帧+5步排查法一次讲清

    CAN总线通信异常?错误帧频繁出现?本文详解五种错误帧类型,并提供五步排查法,助你快速定位问题根源。错误帧的作用错误帧是
    的头像 发表于 03-16 11:36 430次阅读
    <b class='flag-5'>CAN</b>总线报错看不懂?5种<b class='flag-5'>错误</b>帧+5步排查法一次讲清

    从“能用”到“懂原理”:ARMv8寄存器架构深度拆解

    、ELR这些寄存器,只知道是保存状态的,却搞不清背后的设计逻辑; 其实ARMv8的寄存器架构,不是“散知识点的堆砌”,而是围绕“高效运算”“安全隔离”“状态可控”三个核心目标设计的完整体系。 今天这篇文章,我不做枯燥的知识点罗
    的头像 发表于 01-10 07:10 323次阅读
    从“能用”到“懂原理”:ARMv8<b class='flag-5'>寄存器</b>架构深度拆解

    使用位操作精准配置单片机寄存器

    清零整个寄存器​注意寄存器的读写顺序: REG |= (1 << BIT_POS);// 先读取 REG,然后置位​可能导致竞态问题,可使用: disable_irq();REG |= (1 << BI
    发表于 11-24 07:22

    嵌入式系统必懂的 20 个寄存器

    嵌入式开发看起来很复杂,但很多操作其实都离不开寄存器寄存器就是MCU内部的存储单元,它们控制着处理和外设的行为。熟悉这些寄存器,你就能更精确地操作硬件,提高开发效率,减少调试时间。
    的头像 发表于 11-14 10:28 1368次阅读
    嵌入式系统必懂的 20 个<b class='flag-5'>寄存器</b>

    ‌SN74HCT595 8位移位寄存器技术解析与应用指南

    移位寄存器和存储寄存器提供时钟。移位寄存器具有一个直接覆盖清零 (SRCLR) 输入以及用于级联结构的串行 (SER) 输入和串行输出 (QH’)。当输出使能 (OE) 输入置为高电平
    的头像 发表于 09-19 14:31 1232次阅读
    ‌SN74HCT595 8位移位<b class='flag-5'>寄存器</b>技术解析与应用指南

    SN74LV594A:2-5.5V带输出寄存器的8位移位寄存器技术解析

    AEC-Q100标准,采用可湿性侧翼QFN (WBQB) 封装。TI SN74LV594A/-Q1可在移位寄存器和存储寄存器上进行独立直接覆盖清零
    的头像 发表于 09-02 09:42 1151次阅读
    SN74LV594A:2-5.5V带输出<b class='flag-5'>寄存器</b>的8位移位<b class='flag-5'>寄存器</b>技术解析

    Texas Instruments SN74AHC165/SN74AHC165-Q1 SIPO移位寄存器数据手册

    位D型存储寄存器。这些存储寄存器具有并行三态输出。为存储寄存器和移位寄存器提供单独的时钟。移位寄存器具有串行 (SER) 输入、直接覆盖
    的头像 发表于 08-11 15:31 1435次阅读
    Texas Instruments SN74AHC165/SN74AHC165-Q1 SIPO移位<b class='flag-5'>寄存器</b>数据手册

    Texas Instruments SN74AHCT165/SN74AHCT165-Q1 SIPO移位寄存器数据手册

    位D型存储寄存器。这些存储寄存器具有并行三态输出。为存储寄存器和移位寄存器提供单独的时钟。移位寄存器具有串行 (SER) 输入、直接覆盖
    的头像 发表于 08-11 14:55 1500次阅读
    Texas Instruments SN74AHCT165/SN74AHCT165-Q1 SIPO移位<b class='flag-5'>寄存器</b>数据手册

    Texas Instruments SN74LV8T594/SN74LV8T594-Q1移位寄存器特性/应用/框图

    器件输出(QA至QH)。为移位寄存器和存储寄存器提供单独的时钟(SRCLK和RCLK)和直接覆盖清除(SRCLR和RCLR)输入,允许数据单独加载,而不会发送至输出。此外,内部移位寄存器
    的头像 发表于 08-03 10:56 1256次阅读
    Texas Instruments SN74LV8T594/SN74LV8T594-Q1移位<b class='flag-5'>寄存器</b>特性/应用/框图

    Texas Instruments SN74AHCT594/SN74AHCT594-Q1 8位移位寄存器数据手册

    Texas Instruments SN74AHCT594/SN74AHCT594-Q1 8位移位寄存器包含一个为8位D型存储寄存器提供数据的8位串行输入、并行输出移位寄存器。移位寄存器
    的头像 发表于 08-01 15:16 1853次阅读
    Texas Instruments SN74AHCT594/SN74AHCT594-Q1 8位移位<b class='flag-5'>寄存器</b>数据手册

    Texas Instruments SN74AHC594/SN74AHC594-Q1 8位移位寄存器数据手册

    和存储寄存器提供独立的时钟和直接覆盖清零(RCLR、RCLR)输入。提供串行(QH′)输出,用于级联。Texas Instruments SN74AHC594-Q1器件通过了AEC-Q100汽车应用认证。
    的头像 发表于 08-01 14:58 2885次阅读

    Texas Instruments SN74LVC166A 8位并联负载移位寄存器数据手册

    Texas Instruments SN74LVC166A 8位并行加载移位寄存器包含一个8位并行加载移位寄存器。数据通过移位或加载(SH/LD)选择和时钟(CLK)输入同步加载。Texas
    的头像 发表于 07-24 14:43 943次阅读
    Texas Instruments SN74LVC166A 8位并联负载移位<b class='flag-5'>寄存器</b>数据手册

    工控通信精练,CAN转profinet网关的通信技术应用经验必备分享

    主要由 SJ的寄存器读、写程序,初始化程序和发送接收程序 5 个子程序组成。之所以要编写单独的 SJAlOO寄存器读、写子程序,这是由 SX52 芯片只有 I/ O 端口的特点所决定
    的头像 发表于 06-05 17:02 508次阅读
    工控通信精练,<b class='flag-5'>CAN</b>转profinet网关的通信技术应用经验必备分享

    使用寄存器点亮LED灯

    学习本章时,配合以上芯片手册中的“19. I/O Ports”章节一起阅读,效果会更佳,特别是涉及到寄存器说明的部分。本章内容涉及到较多寄存器方面的深入内容,对于初学者而言这些内容丰富也较难理解,但非常有必要细读研究、夯实基础。
    的头像 发表于 05-28 17:37 1469次阅读
    使用<b class='flag-5'>寄存器</b>点亮LED灯

    如何验证CAN控制错误响应机制?

    CAN节点的稳定性、可靠性和安全性得益于其强大的错误管理机制。上一篇文章我们介绍了CAN控制错误管理机制的工作原理。本文将基于其工作原理
    的头像 发表于 04-30 18:24 1025次阅读
    如何验证<b class='flag-5'>CAN</b>控制<b class='flag-5'>器</b>的<b class='flag-5'>错误</b>响应机制?