91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

STM32 CAN接收/發(fā)送錯誤寄存器如何清零?

工程師鄧生 ? 來源:未知 ? 作者:劉芹 ? 2023-09-14 14:22 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

STM32 CAN接收/發(fā)送錯誤寄存器如何清零?

CAN總線是一種常用的串行總線,其具有高可靠性、高速率、容錯能力強等特點,廣泛應(yīng)用于汽車電子、制造業(yè)自動化、工程控制等領(lǐng)域。在CAN總線的標準中,每一個節(jié)點都有一個CAN控制器,CAN控制器通過內(nèi)部寄存器和接口與CAN總線連接。其中,在CAN傳輸過程中,如果出現(xiàn)錯誤,會在CAN控制器內(nèi)部錯誤寄存器中記錄錯誤信息。因此,在使用STM32進行CAN接收/發(fā)送時,及時清零錯誤寄存器是非常重要的。

一、STM32的CAN錯誤寄存器

STM32是一款常用的單片機,內(nèi)置了CAN控制器,其錯誤寄存器分為兩種類型:

1.接收錯誤寄存器:即CAN接收錯誤寄存器,用于記錄CAN接收過程中出現(xiàn)的錯誤信息;

2.發(fā)送錯誤寄存器:即CAN發(fā)送錯誤寄存器,用于記錄CAN發(fā)送過程中出現(xiàn)的錯誤信息。

這兩個寄存器都可以對系統(tǒng)診斷以及CAN總線的異常處理起到重要的作用。

二、接收錯誤寄存器的清零

在CAN接收過程中,很容易出現(xiàn)錯誤,這些錯誤會被記錄在接收錯誤寄存器中。如果不及時清零錯誤寄存器,會影響后續(xù)的接收,并會對CAN節(jié)點的正常通訊產(chǎn)生影響。因此,在STM32進行CAN接收時,及時清零接收錯誤寄存器是非常重要的。

清零接收錯誤寄存器的方法如下:

首先,需要在代碼中使能CAN接收錯誤中斷,當出現(xiàn)錯誤時,會產(chǎn)生錯誤中斷。其次,需要在接收錯誤中斷函數(shù)中調(diào)用相應(yīng)的錯誤寄存器清零函數(shù)。

在STM32的標準庫中,可以通過以下代碼清零CAN接收錯誤寄存器:

CAN_ClearFlag(CANx, CAN_FLAG_RQCP0);

其中,CANx表示CAN1或者CAN2,CAN_FLAG_RQCP0表示CAN接收錯誤寄存器中的錯誤標記。此函數(shù)會將接收錯誤寄存器中的標記位清零,以保證后續(xù)的接收正常進行。

三、發(fā)送錯誤寄存器的清零

在CAN發(fā)送過程中,也可能會發(fā)生錯誤。如果不及時清零發(fā)送錯誤寄存器,會影響后續(xù)的發(fā)送,并會對CAN節(jié)點的正常通訊產(chǎn)生影響。因此,在STM32進行CAN發(fā)送時,及時清零發(fā)送錯誤寄存器也是非常重要的。

清零發(fā)送錯誤寄存器的方法如下:

首先,需要在代碼中使能CAN發(fā)送錯誤中斷,當出現(xiàn)錯誤時,會產(chǎn)生錯誤中斷。其次,需要在發(fā)送錯誤中斷函數(shù)中調(diào)用相應(yīng)的錯誤寄存器清零函數(shù)。

在STM32的標準庫中,可以通過以下代碼清零CAN發(fā)送錯誤寄存器:

CAN_ClearFlag(CANx, CAN_FLAG_TERR0);

其中,CANx表示CAN1或者CAN2,CAN_FLAG_TERR0表示CAN發(fā)送錯誤寄存器中的錯誤標記。此函數(shù)會將發(fā)送錯誤寄存器中的標記位清零,以保證后續(xù)的發(fā)送正常進行。

四、總結(jié)

CAN總線的應(yīng)用范圍非常廣泛,其可靠性和容錯能力強是其他總線不能比擬的。在STM32進行CAN接收/發(fā)送過程中,及時清零錯誤寄存器是非常重要的,它會對系統(tǒng)以及CAN總線輕松應(yīng)對一些異常情況產(chǎn)生積極的作用。通過清零CAN接收/發(fā)送錯誤寄存器,可以提高系統(tǒng)的可靠性和穩(wěn)定性,同時避免一些可能會出現(xiàn)的通信問題,確保應(yīng)用能夠順利進行。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 單片機
    +關(guān)注

    關(guān)注

    6076

    文章

    45501

    瀏覽量

    670635
  • 寄存器
    +關(guān)注

    關(guān)注

    31

    文章

    5609

    瀏覽量

    130016
  • CAN
    CAN
    +關(guān)注

    關(guān)注

    59

    文章

    3068

    瀏覽量

    472796
  • STM32
    +關(guān)注

    關(guān)注

    2310

    文章

    11162

    瀏覽量

    373532
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    從“能用”到“懂原理”:ARMv8寄存器架構(gòu)深度拆解

    、ELR這些寄存器,只知道是保存狀態(tài)的,卻搞不清背后的設(shè)計邏輯; 其實ARMv8的寄存器架構(gòu),不是“散知識點的堆砌”,而是圍繞“高效運算”“安全隔離”“狀態(tài)可控”三個核心目標設(shè)計的完整體系。 今天這篇文章,我不做枯燥的知識點羅
    的頭像 發(fā)表于 01-10 07:10 ?149次閱讀
    從“能用”到“懂原理”:ARMv8<b class='flag-5'>寄存器</b>架構(gòu)深度拆解

    使用位操作精準配置單片機寄存器

    清零整個寄存器?注意寄存器的讀寫順序: REG |= (1 << BIT_POS);// 先讀取 REG,然后置位?可能導(dǎo)致競態(tài)問題,可使用: disable_irq();REG |= (1 << BI
    發(fā)表于 11-24 07:22

    ?SN74HCT595 8位移位寄存器技術(shù)解析與應(yīng)用指南

    移位寄存器和存儲寄存器提供時鐘。移位寄存器具有一個直接覆蓋清零 (SRCLR) 輸入以及用于級聯(lián)結(jié)構(gòu)的串行 (SER) 輸入和串行輸出 (QH’)。當輸出使能 (OE) 輸入置為高電平
    的頭像 發(fā)表于 09-19 14:31 ?972次閱讀
    ?SN74HCT595 8位移位<b class='flag-5'>寄存器</b>技術(shù)解析與應(yīng)用指南

    SN74LV594A:2-5.5V帶輸出寄存器的8位移位寄存器技術(shù)解析

    AEC-Q100標準,采用可濕性側(cè)翼QFN (WBQB) 封裝。TI SN74LV594A/-Q1可在移位寄存器和存儲寄存器上進行獨立直接覆蓋清零
    的頭像 發(fā)表于 09-02 09:42 ?931次閱讀
    SN74LV594A:2-5.5V帶輸出<b class='flag-5'>寄存器</b>的8位移位<b class='flag-5'>寄存器</b>技術(shù)解析

    Texas Instruments SN74AHC165/SN74AHC165-Q1 SIPO移位寄存器數(shù)據(jù)手冊

    位D型存儲寄存器。這些存儲寄存器具有并行三態(tài)輸出。為存儲寄存器和移位寄存器提供單獨的時鐘。移位寄存器具有串行 (SER) 輸入、直接覆蓋
    的頭像 發(fā)表于 08-11 15:31 ?1158次閱讀
    Texas Instruments SN74AHC165/SN74AHC165-Q1 SIPO移位<b class='flag-5'>寄存器</b>數(shù)據(jù)手冊

    Texas Instruments SN74AHCT165/SN74AHCT165-Q1 SIPO移位寄存器數(shù)據(jù)手冊

    位D型存儲寄存器。這些存儲寄存器具有并行三態(tài)輸出。為存儲寄存器和移位寄存器提供單獨的時鐘。移位寄存器具有串行 (SER) 輸入、直接覆蓋
    的頭像 發(fā)表于 08-11 14:55 ?1221次閱讀
    Texas Instruments SN74AHCT165/SN74AHCT165-Q1 SIPO移位<b class='flag-5'>寄存器</b>數(shù)據(jù)手冊

    Texas Instruments SN74LV8T594/SN74LV8T594-Q1移位寄存器特性/應(yīng)用/框圖

    器件輸出(QA至QH)。為移位寄存器和存儲寄存器提供單獨的時鐘(SRCLK和RCLK)和直接覆蓋清除(SRCLR和RCLR)輸入,允許數(shù)據(jù)單獨加載,而不會發(fā)送至輸出。此外,內(nèi)部移位寄存器
    的頭像 發(fā)表于 08-03 10:56 ?1112次閱讀
    Texas Instruments SN74LV8T594/SN74LV8T594-Q1移位<b class='flag-5'>寄存器</b>特性/應(yīng)用/框圖

    Texas Instruments SN74AHCT594/SN74AHCT594-Q1 8位移位寄存器數(shù)據(jù)手冊

    Texas Instruments SN74AHCT594/SN74AHCT594-Q1 8位移位寄存器包含一個為8位D型存儲寄存器提供數(shù)據(jù)的8位串行輸入、并行輸出移位寄存器。移位寄存器
    的頭像 發(fā)表于 08-01 15:16 ?1365次閱讀
    Texas Instruments SN74AHCT594/SN74AHCT594-Q1 8位移位<b class='flag-5'>寄存器</b>數(shù)據(jù)手冊

    Texas Instruments SN74AHC594/SN74AHC594-Q1 8位移位寄存器數(shù)據(jù)手冊

    和存儲寄存器提供獨立的時鐘和直接覆蓋清零(RCLR、RCLR)輸入。提供串行(QH′)輸出,用于級聯(lián)。Texas Instruments SN74AHC594-Q1器件通過了AEC-Q100汽車應(yīng)用認證。
    的頭像 發(fā)表于 08-01 14:58 ?1850次閱讀

    Texas Instruments SN74LVC166A 8位并聯(lián)負載移位寄存器數(shù)據(jù)手冊

    Texas Instruments SN74LVC166A 8位并行加載移位寄存器包含一個8位并行加載移位寄存器。數(shù)據(jù)通過移位或加載(SH/LD)選擇和時鐘(CLK)輸入同步加載。Texas
    的頭像 發(fā)表于 07-24 14:43 ?785次閱讀
    Texas Instruments SN74LVC166A 8位并聯(lián)負載移位<b class='flag-5'>寄存器</b>數(shù)據(jù)手冊

    工控通信精練,CAN轉(zhuǎn)profinet網(wǎng)關(guān)的通信技術(shù)應(yīng)用經(jīng)驗必備分享

    主要由 SJ的寄存器讀、寫程序,初始化程序和發(fā)送、接收程序 5 個子程序組成。之所以要編寫單獨的 SJAlOO寄存器讀、寫子程序,這是由 SX52 芯片只有 I/ O 端口的特點所決定
    的頭像 發(fā)表于 06-05 17:02 ?443次閱讀
    工控通信精練,<b class='flag-5'>CAN</b>轉(zhuǎn)profinet網(wǎng)關(guān)的通信技術(shù)應(yīng)用經(jīng)驗必備分享

    使用寄存器點亮LED燈

    學(xué)習本章時,配合以上芯片手冊中的“19. I/O Ports”章節(jié)一起閱讀,效果會更佳,特別是涉及到寄存器說明的部分。本章內(nèi)容涉及到較多寄存器方面的深入內(nèi)容,對于初學(xué)者而言這些內(nèi)容豐富也較難理解,但非常有必要細讀研究、夯實基礎(chǔ)。
    的頭像 發(fā)表于 05-28 17:37 ?1327次閱讀
    使用<b class='flag-5'>寄存器</b>點亮LED燈

    如何驗證CAN控制錯誤響應(yīng)機制?

    CAN節(jié)點的穩(wěn)定性、可靠性和安全性得益于其強大的錯誤管理機制。上一篇文章我們介紹了CAN控制錯誤管理機制的工作原理。本文將基于其工作原理
    的頭像 發(fā)表于 04-30 18:24 ?879次閱讀
    如何驗證<b class='flag-5'>CAN</b>控制<b class='flag-5'>器</b>的<b class='flag-5'>錯誤</b>響應(yīng)機制?

    將HFREFR和LFREFR寄存器值設(shè)置為錯誤的值來將故障注入CMU,但CMU_ISR值始終為,為什么?

    我試圖通過將 HFREFR 和 LFREFR 寄存器值設(shè)置為錯誤的值來將故障注入 CMU,但 CMU_ISR值始終為。
    發(fā)表于 03-28 07:41

    STM32F743的canfd錯誤寄存器,TEC,REC等信息怎么復(fù)位?

    STM32F743的canfd錯誤寄存器,TEC,REC等信息怎么復(fù)位?重新初始化后寄存器值仍然保持。
    發(fā)表于 03-14 07:04