首先解釋一下can幾個配置的功能:
1. can_initstruct.can_ttcm = disable;
這個只在某些can標準中使用,就設定為disable。
2.can_initstruct.can_abom = enable;
這個位我們使能該功能,使用該功能可以在節點出錯離線後適時的自動恢復,不需要軟體干預。
3.can_initstruct.can_awum = enable;
這個位我們使能該功能,使用該功能可以在監測到匯流排活動後自動喚醒。
4.can_initstruct.can_nart = disable;
注意這個功能,這裡disable代表的是使用自動重傳的功能,disable是代表不使用自動重傳的功能,我看了好多書籍上注釋都寫錯了。
5.can_initstruct.can_rflm = disable;
是否鎖定fifo,如果鎖定,fifo溢位會丟棄新資料;如果不鎖定,fifo溢位時,新資料會覆蓋舊資料。
6.can_initstruct.can_txfp = disable;
使能時會以存入傳送郵箱的順序進行傳送,失能時,以報文id的優先順序傳送。
這裡遇到的問題是,發現在不使用自動重傳的功能時,如果由於匯流排競爭導致傳送失敗,資料就丟掉了。所以在不是一應一答的環境中使用can的時候,建議開啟自動重傳功能。
stm32 can通訊傳送解釋
uint8 t can transmit can typedef canx,cantxmsg txmessage else if canx tsr can tsr tme1 can tsr tme1 else if canx tsr can tsr tme2 can tsr tme2 else if...
STM32 CAN簡單接收和傳送
前面對can原理進行了講解,這裡我用乙個簡單的例子來說明can的使用。我使用的stm32晶元是stm32f103ze,幾個基本的配置是 1.配置can時鐘 can periph clock enable rcc apb1periphclockcmd rcc apb1periph can,enable...
STM32 CAN通訊問題
檢舉 2012 07 04 20 59 breath123 分類 工程技術科學 瀏覽974次 can通訊測試中 使能報文標示符過濾器按照標示符的內容進行比對過濾,擴充套件id不是如下的就拋棄掉,是的話,會存入fifo0。can filterinitstructure.can filteridhigh...