




下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、零死角玩轉(zhuǎn)STM32淘寶:fi:掃描進入淘寶主講內(nèi)容01CAN協(xié)議簡介02STM32的CAN外設簡介03CAN控制的相關結構體04參考資料:零死角玩轉(zhuǎn)STM32“”章節(jié)CAN結構體從STM32的CAN外設 了解到它的功能非常多,控制涉及的寄存器也非常豐富,而使用STM32標準庫提供的各種結構體及庫函數(shù)可以簡化這些控制過程。跟其它外設一樣,STM32標準庫提供了CAN初始化結構體及初始化函數(shù)來控制CAN的工作方式,提供了收發(fā)報文使用的結構體及收發(fā)函數(shù),還有配置控制篩選器模式及ID的結構體。初始化結構體:CAN_InitTypeDef發(fā)送及接收結構體:CanTxMsg及CanRxMsg篩選器結構體
2、:CAN_FilterInitTypeDefCAN初始化結構體配置完這些結構體成員后,調(diào)用庫函數(shù)CAN_Init即可把這些參數(shù)寫入到CAN控制寄存器中,實現(xiàn)CAN的初始化。CAN初始化結構體CAN_Prescaler本成員設置CAN外設的時鐘分頻,它可控制時間片Tq的時間長度,這里設置的值最終會減1后再寫入BRP寄存器位,即前面介紹的Tq計算公式:Tq = (BRP9:0+1) x TPCLK等效于:Tq = CAN_Prescaler x TPCLKCAN初始化結構體CAN_Mode本成員設置CAN的工作模式,可設置為正常模式(CAN_Mode_Normal)、回環(huán)模式 (CAN_Mode_
3、Loack)、靜默模式(CAN_Mode_Silent)以及回環(huán)靜默模式 (CAN_Mode_Silent_Loack)。CAN初始化結構體CAN_SJW本成員可以配置SJW的極限長度,即CAN重新同步時單次可增加或縮短的最大長度,它可以被配置為1-4Tq(CAN_SJW_1/2/3/4tq)。CAN初始化結構體CAN_BS1本成員用于設置CAN位時序中的BS1段的長度,它可以被配置為1-16個Tq長度(CAN_BS1_1/2/316tq)。CAN初始化結構體CAN_BS2本成員用于設置CAN位時序中的BS2段的長度,它可以被配置為1-8個Tq長度(CAN_BS2_1/2/38tq)。SYNC
4、_SEG、BS1段及BS2段的長度加起來即一個數(shù)據(jù)位的長度,即前面介紹的原來計算公式:T1bit =1Tq+TS1+TS2 =1+ (TS13:0 + 1)+ (TS22:0 + 1)等效于:T1bit = 1Tq+CAN_BS1+CAN_BS2CAN初始化結構體CAN_TTCM本成員用于設置是否使用時間觸發(fā)功能(ENABLE/DISABLE),時間觸發(fā)功能在某些CAN標準中會使用到。CAN初始化結構體CAN_ABOM本成員用于設置是否使用自動離線管理(ENABLE/DISABLE),使用自動離線管理可以在節(jié)點出錯離線后適時自動恢復,不需要干預。CAN初始化結構體CAN_ AWUM本成員用于設
5、置是否使用自動喚醒功能(ENABLE/DISABLE),使能自動喚醒功能后它會在監(jiān)測到總線活動后自動喚醒。CAN初始化結構體CAN_NART本成員用于設置是否使用自動重能(ENABLE/DISABLE),使用自動重能時,會一直發(fā)送報文直到成功為止。CAN初始化結構體CAN_RFLM本成員用于設置是否使用鎖定接收FIFO(ENABLE/DISABLE),鎖定接收FIFO后,若FIFO溢出時會丟棄新數(shù)據(jù),否則在FIFO溢出時以新數(shù)據(jù)覆蓋舊數(shù)據(jù)。CAN初始化結構體CAN_TXFP本成員用于設置發(fā)送報文的優(yōu)先級判定方法(ENABLE/DISABLE),使能時,以報文存入發(fā)送郵箱的先后順序來發(fā)送,否則按
6、照報文ID的優(yōu)先級來發(fā)送。CAN發(fā)送及接收結構體在發(fā)送或接收報文時,需要往發(fā)送郵箱中寫入報文信息或從接收FIFO中報文信息,利用STM32標準庫的發(fā)送及接收結構體可以方便地完成這樣的工作。CAN發(fā)送及接收結構體StdId本成員的是報文的11位標準標識符,范圍是0-0 x7FF。ExtId本成員的是報文的29位擴展標識符,范圍是0-0 x1F。ExtId與StdId這兩個成員根據(jù)下面的IDE位配置,只有一個是有效的。CAN發(fā)送及接收結構體IDE本成員的是擴展標志IDE位,當它的值為宏CAN_ID_STD時表示本報文是標準幀,使用StdId成員報文ID;當它的值為宏CAN_ID_EXT時表示本報文
7、是擴展幀,使用ExtId成員報文ID。CAN發(fā)送及接收結構體RTR本成員的是報文類型標志RTR位,當它的值為宏CAN_RTR_Data時表示本報文是數(shù)據(jù)幀;當它的值為宏CAN_RTR_Remote時表示本報文是幀,由于幀沒有數(shù)據(jù)段,所以當報文是幀時,下面的Data8成員的內(nèi)容是無效的。CAN發(fā)送及接收結構體DLC本成員的是數(shù)據(jù)幀數(shù)據(jù)段的長度,它的值的范圍是0-8,當報文是幀時DLC值為0。Data8本成員的就是數(shù)據(jù)幀中數(shù)據(jù)段的數(shù)據(jù)。CAN發(fā)送及接收結構體FMI本成員只存在于接收結構體,它了篩選器的,表示本報文是經(jīng)過哪個篩選器進接收FIFO的,可以用它簡化處理。CAN發(fā)送及接收結構體當需要使用C
8、AN發(fā)送報文時,先定義一個上面發(fā)送類型的結構體,然后把報文的內(nèi)容按成員賦值到該結構體中,最后調(diào)用庫函數(shù)CAN_Transmit把這些內(nèi)容寫入到發(fā)送郵箱即可把報文發(fā)送出去。接收報文時,通過檢測標志位獲知接收FIFO的狀態(tài),若收到報文,可調(diào)用庫函數(shù)CAN_Receive把接收FIFO中的內(nèi)容到預先定義的接收類型結構體中,然后再該結構體即可利用報文。CAN篩選器結構體CAN_FilterIdHighCAN_FilterIdHigh成員用于要篩選的ID,若篩選器工作在32位模式,它的是所篩選ID的高16位;若篩選器工作在16位模式,它的就是一個完整的要篩選的ID。CAN篩選器結構體CAN_Filter
9、IdLow類似地,CAN_FilterIdLow成員也是用于要篩選的ID,若篩選器工作在32位模式,它的是所篩選ID的低16位;若篩選器工作在16位模式,它的就是一個完整的要篩選的ID。CAN篩選器結構體CAN_FilterMaskIdHighCAN_FilterMaskIdHigh的內(nèi)容分兩種情況,當篩選器工作在標識符列表模式時,它的功能與CAN_FilterIdHigh相同,都是要篩選的ID;而當篩選器工作在掩碼模式時,它的是CAN_FilterIdHigh成員對應的掩碼,與CAN_FilterIdLow組成一組篩選器。CAN篩選器結構體CAN_FilterMaskIdLow類似地,CAN
10、_FilterMaskIdLow的內(nèi)容也分兩種情況,當篩選器工作在標識符列表模式時,它的功能與CAN_FilterIdLow相同,都是要篩選的ID;而當篩選器工作在掩碼模式時,它的是CAN_FilterIdLow成員對應的掩碼,與CAN_FilterIdLow組成一組篩選器。CAN篩選器結構體不同模式下各結構體成員的內(nèi)容:模式CAN_FilterIdHighCAN_FilterIdLowCAN_FilterMaskIdHighCAN_FilterMaskIdLow32位列表模式ID1的高16位ID1的低16位ID2的高16位ID2的低16位16位列表模式ID1的完整數(shù)值ID2的完整數(shù)值ID3的
11、完整數(shù)值ID4的完整數(shù)值32位掩碼模式ID1的高16位ID1的低16位ID1掩碼的高16位ID1掩碼的低16位16位掩碼模式ID1的完整數(shù)值ID2的完整數(shù)值ID1掩碼的完整數(shù)值ID2掩碼完整數(shù)值CAN篩選器結構體CAN_FilterFIFOAssignment本成員用于設置當報文通過篩選器的匹配后,該報文會被到哪一個接收FIFO,它的可選值為FIFO0或FIFO1(宏CAN_Filter_FIFO0/1)。CAN篩選器結構體CAN_FilterNumber本成員用于設置篩選器的,即本過濾器結構體配置的是哪一組篩選器,CAN一共有28個篩選器,所以它的可輸入?yún)?shù)范圍為0-27。CAN篩選器結構體CAN_FilterMode本成員用于設置篩選器的工作模式,可以設置為列表模式(宏CAN_FilterMode_IdList)及掩碼模式(宏CAN_FilterMode_IdMask)。CAN篩選器結構體C
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 研發(fā)中心場委托招聘合作協(xié)議
- 茶具研發(fā)與生產(chǎn)合作協(xié)議
- 財務離職保密及競業(yè)限制合同范本
- 餐飲連鎖品牌特許經(jīng)營區(qū)域保護協(xié)議書
- 特色餐廳廚房設計與施工承包合同
- 產(chǎn)業(yè)園區(qū)場合作經(jīng)營與產(chǎn)業(yè)布局協(xié)議
- 跨境電商跨境支付反欺詐風險管理合同
- 旅游景區(qū)場地轉(zhuǎn)租管理服務協(xié)議
- 回流洗腸護理操作規(guī)范
- 2025年企業(yè)安全協(xié)議
- 陽光心理健康成長(課件)-小學生主題班會
- 羊肚菌種植項目可行性研究報告
- 衛(wèi)健系統(tǒng)2025年上半年安全生產(chǎn)工作總結
- 麻精藥品規(guī)范化管理與使用
- 廬江縣2024-2025學年四下數(shù)學期末達標測試試題含解析
- 湘教版地理中考總復習教案
- 高中英語新課標3000詞匯表(新高考)
- 2025年個人房貸還款合同格式
- 2025年度老舊小區(qū)改造工程施工合同交底范本
- 2025年福建廈門市翔安市政集團水務管理有限公司招聘筆試參考題庫附帶答案詳解
- 江蘇2024年江蘇海事職業(yè)技術學院招聘11人(第三批)筆試歷年參考題庫附帶答案詳解
評論
0/150
提交評論