久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 9722|回復: 2
打印 上一主題 下一主題
收起左側

一個關于STM32 CAN出錯恢復的話題

[復制鏈接]
跳轉到指定樓層
樓主
ID:98618 發表于 2016-4-27 23:40 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
最近有個STM32 用戶咨詢:

最近在使用stm32f105做雙can通信,can驅動芯片使用的TJA1042,發現將canH canL 短路再放開以后,can出錯恢復不回來?之前在K40上使用的時候沒有這個問題,不知道這個情況大家有什么指導建議啊?

另外,他還附上了基于STM32CUBEMX工具配置的相關代碼如下:

   hcan1.Instance = CAN1;

   hcan1.Init.Prescaler = 2;

   hcan1.Init.Mode = CAN_MODE_NORMAL;

   hcan1.Init.SJW = CAN_SJW_1TQ;

   hcan1.Init.BS1 = CAN_BS1_8TQ;

   hcan1.Init.BS2 = CAN_BS2_7TQ;

   hcan1.Init.TTCM = DISABLE;

   hcan1.Init.ABOM = DISABLE;

   hcan1.Init.AWUM = DISABLE;

   hcan1.Init.NART = DISABLE;

   hcan1.Init.RFLM = DISABLE;

   hcan1.Init.TXFP = DISABLE;

   HAL_CAN_Init(&hcan1);

 

從用戶的描述來看,應該是CANH/CANL短路時導致錯誤而進入離線狀態。

其實,CAN硬件是具備出錯管理和離線恢復功能的。在STM32參考手冊的CAN出錯管理章節有相關描述。


CAN協議所描述的出錯管理,完全由硬件通過發送錯誤計數器(CAN_ESR寄存器里的TEC域),和接收錯誤計數器(CAN_ESR寄存器里的REC域)來實現,其值根據出錯情況作增加或減少。關于TEC和REC管理的詳細信息,需參考CAN標準。此外,CAN_ESR寄存器提供了當前錯誤狀態的詳細信息。通過設置CAN_IER寄存器(比如ERRIE位),當檢測到出錯時軟件可以靈活地控制中斷的產生。

 

關于離線恢復

當TEC大于255時,bxCAN就進入離線狀態,同時CAN_ESR寄存器的BOFF位被置’1’。在離線狀態下,bxCAN無法接收和發送報文

根據CAN_MCR寄存器中ABOM位的設置,bxCAN可以自動在軟件的請求下,從離線狀態恢復(變為錯誤主動狀態)。在這兩種情況下,bxCAN都必須等待一個CAN標準所描述的恢復過程(CAN RX引腳上檢測到128次11個連續的隱性位)。

 

如果ABOM位為’1’,bxCAN進入離線狀態后,就自動開啟恢復過程。

如果ABOM位為’0’,必須通過軟件請求bxCAN進入初始化模式然后退出并進入正常模式,隨后才能啟動恢復過程。

 

注: 在初始化模式下,bxCAN不會監視CAN RX引腳的狀態,這樣就不能完成恢復過程。為了完成恢復過程,bxCAN必須工作在正常模式。

 

用戶給出的配置代碼并未出現使能ABOM功能的語句,那關于ABOM的默認值又是怎樣呢?


CAN_MCR寄存器的初始值來看,位ABOM默認初始值是0,即沒有開啟自動離線恢復功能。

既然這樣,用戶要么借助出錯中斷和查詢CAN_ESR中的BOFF位來進行軟件手動恢復,要么修改配置代碼,將ABOM使能,實行離線自動恢復。


后來用戶將配置代碼調整,使能了ABOM, 代碼中加入hcan1.Init.ABOM = ENABLE; OK


相關話題鏈接:【點擊閱讀】

一個關于CAN出錯中斷重復出現的話題

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:83553 發表于 2016-4-28 12:59 | 只看該作者
我用51+sja1000也有這樣的情況,如何設置,請教樓主。謝謝!
回復

使用道具 舉報

板凳
ID:958413 發表于 2021-8-2 19:38 | 只看該作者
寫的不錯,頂一個
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲视频免费在线观看 | 久草视频网站 | 天堂久久av| 一区二区三区中文字幕 | 欧美精品综合 | 国产成人精品一区二区三区视频 | 日韩和的一区二区 | 琪琪午夜伦伦电影福利片 | 久久久资源 | 日本一区二区视频 | 欧美日韩在线成人 | 成人在线视频网 | 在线欧美| 天天干夜夜 | 欧美人成在线视频 | 精品亚洲一区二区三区 | 精品美女在线观看视频在线观看 | 免费av毛片 | 久久99久久99精品免视看婷婷 | 国产一区二区麻豆 | 亚洲国产欧美在线 | 青青久在线视频 | 99久久久无码国产精品 | 涩在线 | a免费视频 | 亚洲成人在线网 | 亚洲午夜精品一区二区三区他趣 | 欧美黑人狂野猛交老妇 | 欧美色999 | 中文字幕免费视频 | 中文字幕视频三区 | 成人精品国产免费网站 | www.97国产 | 日韩精品在线视频 | 久久久久午夜 | 精品麻豆剧传媒av国产九九九 | 久久久亚洲一区 | 亚洲精品在线视频 | 成人免费观看男女羞羞视频 | 日韩在线精品视频 | 91亚洲国产成人久久精品网站 |