伦伦影院久久影视,天天操天天干天天射,ririsao久久精品一区 ,一本大道香蕉大久在红桃,999久久久免费精品国产色夜,色悠悠久久综合88,亚洲国产精品久久无套麻豆,亚洲香蕉毛片久久网站,一本一道久久综合狠狠老

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

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

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

中科芯CKS32F107XX系列MCU的bxCAN介紹

中科芯MCU ? 來源:中科芯MCU ? 2026-01-22 09:06 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

MCU微課堂

CKS32F107XX系列bxCAN介紹

第七十期 2026.01.19

bxCAN簡(jiǎn)介

CKS32F107xx系列產(chǎn)品的bxCAN支持CAN協(xié)議2.0A和2.0B標(biāo)準(zhǔn)。 該CAN 控制器支持最高的通訊速率為1Mb/s;可以自動(dòng)地接收和發(fā)送CAN報(bào)文,支持使用標(biāo)準(zhǔn)ID和擴(kuò)展ID的報(bào)文;外設(shè)中具有3個(gè)發(fā)送郵箱,發(fā)送報(bào)文的優(yōu)先級(jí)可以使用軟件控制,還可以記錄發(fā)送的時(shí)間;具有2個(gè)3級(jí)深度的接收FIFO,可使用過濾功能只接收或不接收某些ID號(hào)的報(bào)文;可配置成自動(dòng)重發(fā);不支持使用 DMA進(jìn)行數(shù)據(jù)收發(fā)。

圖1是CKS32F107系列芯片的CAN外設(shè)架構(gòu)圖,圖里具有2組CAN 控制器,其中CAN1是主設(shè)備,框圖中的“存儲(chǔ)訪問控制器”是由CAN1控制的,CAN2無法直接訪問存儲(chǔ)區(qū)域,所以使用CAN2的時(shí)候必須使能CAN1外設(shè)的時(shí)鐘。框圖中主要包含CAN控制內(nèi)核、發(fā)送郵箱、接收FIFO以及驗(yàn)收篩選器。

eaf55f12-f50c-11f0-92de-92fbcf53809c.png

圖1 CKS32F107系列CAN外設(shè)架構(gòu)圖

CAN控制內(nèi)核

CAN控制內(nèi)核包含了各種控制寄存器及狀態(tài)寄存器,我們主要講解其中的主控制寄存器CAN_MCR及位時(shí)序寄存器CAN_BTR。

主控制寄存器CAN_MCR負(fù)責(zé)管理CAN的工作模式,主要包括以下工作模式:

DBF調(diào)試凍結(jié)功能 DBF(Debug freeze):調(diào)試凍結(jié),使用它可設(shè)置CAN處于工作狀態(tài)或禁止收發(fā)的狀態(tài),禁止收發(fā)時(shí)仍可訪問接收FIFO中的數(shù)據(jù)。這兩種狀態(tài)是當(dāng)芯片處于程序調(diào)試模式時(shí)才使用的,平時(shí)使用并不影響。

TTCM 時(shí)間觸發(fā)模式 TTCM(Time triggered communication mode):時(shí)間觸發(fā)模式,它用于配置CAN的時(shí)間觸發(fā)通信模式,在此模式下,CAN使用它內(nèi)部定時(shí)器產(chǎn)生時(shí)間戳,利用它可以實(shí)現(xiàn)ISO 11898-4CAN標(biāo)準(zhǔn)的分時(shí)同步通信功能。 ABOM自動(dòng)離線管理 ABOM(Automatic bus-o? management): 自動(dòng)離線管理,它用于設(shè)置是否使用自動(dòng)離線管理功能。當(dāng)節(jié)點(diǎn)檢測(cè)到它發(fā)送錯(cuò)誤或接收錯(cuò)誤超過一定值時(shí),會(huì)自動(dòng)進(jìn)入離線狀態(tài),在離線狀態(tài)中,CAN不能接收或發(fā)送報(bào)文。處于離線狀態(tài)的時(shí)候,可以軟件控制恢復(fù)或者直接使用這個(gè)自動(dòng)離線管理功能,它會(huì)在適當(dāng)?shù)臅r(shí)候自動(dòng)恢復(fù)。

AWUM 自動(dòng)喚醒 AWUM(Automatic bus-o? management):自動(dòng)喚醒功能,CAN 外設(shè)可以使用軟件進(jìn)入 低功耗的睡眠模式,如果使能了這個(gè)自動(dòng)喚醒功能,當(dāng) CAN檢測(cè)到總線活動(dòng)的時(shí)候,會(huì)自動(dòng)喚醒。

NART 自動(dòng)重傳NART(No automatic retransmission): 報(bào)文自動(dòng)重傳功能,設(shè)置這個(gè)功能后,當(dāng)報(bào)文發(fā)送失敗時(shí)會(huì)自動(dòng)重傳至成功為止。若不使用這個(gè)功能,無論發(fā)送結(jié)果如何,消息只發(fā)送一次。

RFLM鎖定模式RFLM(Receive FIFO locked mode):FIFO 鎖定模式,該功能用于鎖定接收FIFO。鎖定后,當(dāng)接收FIFO溢出時(shí),會(huì)丟棄下一個(gè)接收的報(bào)文。若不鎖定,則下一個(gè)接收到的報(bào)文會(huì)覆蓋原報(bào)文。

TXFP報(bào)文發(fā)送優(yōu)先級(jí)的判定方法TXFP(Transmit FIFO priority):報(bào)文發(fā)送優(yōu)先級(jí)的判定方法,當(dāng)CAN外設(shè)的發(fā)送郵箱中有多個(gè)待發(fā)送報(bào)文時(shí),本功能可以控制它是根據(jù)報(bào)文的ID優(yōu)先級(jí)還是報(bào)文存進(jìn)郵箱的順序來發(fā)送。

位時(shí)序寄存器(CAN_BTR)及波特率:CAN外設(shè)中的位時(shí)序寄存器CAN_BTR用于配置測(cè)試模式、波特率以及各種位內(nèi)的段參數(shù)。

正常模式:正常模式下就是一個(gè)正常的CAN節(jié)點(diǎn),可以向總線發(fā)送數(shù)據(jù)和接收數(shù)據(jù)。

靜默模式:靜默模式下,它自己的輸出端的邏輯0數(shù)據(jù)會(huì)直接傳輸?shù)剿约旱妮斎攵耍壿?可以被發(fā)送到總線,所以它不能向總線發(fā)送顯性位(邏輯0),只能發(fā)送隱性位(邏輯1)。輸入端可以從總線接收內(nèi)容。由于它只可發(fā)送的隱性位不會(huì)強(qiáng)制影響總線的狀態(tài),所以把它稱為靜默模式。這種模式一般用于監(jiān)測(cè),它可以用于分析總線上的流量,但又不會(huì)因?yàn)榘l(fā)送顯性位而影響總線。

回環(huán)模式:回環(huán)模式下,它自己的輸出端的所有內(nèi)容都直接傳輸?shù)阶约旱妮斎攵耍敵龆说膬?nèi)容同時(shí)也會(huì)被傳輸?shù)娇偩€上,即也可使用總線監(jiān)測(cè)它的發(fā)送內(nèi)容。輸入端只接收自己發(fā)送端的內(nèi)容,不接收來自總線上的內(nèi)容。使用回環(huán)模式可以進(jìn)行自檢。

回環(huán)靜默模式:該模式是以上兩種模式的結(jié)合,自己的輸出端的所有內(nèi)容都直接傳輸?shù)阶约旱妮斎攵耍⑶也粫?huì)向總線發(fā)送顯性位影響總線,不能通過總線監(jiān)測(cè)它的發(fā)送內(nèi)容。輸入端只接收自己發(fā)送端的內(nèi)容,不接收來自總線上的內(nèi)容。這種方式可以在“熱自檢”時(shí)使用,即自我檢查的時(shí)候,不會(huì)干擾總線。

位時(shí)序及波特率: CKS32F107中CAN的位時(shí)序如圖2所示。

eb666b44-f50c-11f0-92de-92fbcf53809c.png

圖2 CAN位時(shí)序圖

CKS32F107的CAN外設(shè)位時(shí)序中只包含3段,分別是同步段SYNC_SEG、位段 BS1及位段BS2,采樣點(diǎn)位于BS1及BS2段的交界處。其中SYNC_SEG段固定長(zhǎng)度為1Tq,而BS1及BS2段可以在位時(shí)序寄存器CAN_BTR設(shè)置它們的時(shí)間長(zhǎng)度,它們可以在重新同步期間增長(zhǎng)或縮短,該長(zhǎng)度SJW也可在位時(shí)序寄存器中配置。因此通過配置位時(shí)序寄存器CAN_BTR的TS1[3:0]及TS2[2:0]寄存器位設(shè)定BS1及 BS2段的長(zhǎng)度后,我們就可以確定每個(gè)CAN數(shù)據(jù)位的時(shí)間:

T1bit =1Tq+TBS1+TBS2=NTq

其中單個(gè)時(shí)間片的長(zhǎng)度Tq與CAN外設(shè)的所掛載的時(shí)鐘總線及分頻器配置有關(guān),CAN1和CAN2外設(shè)都是掛載在APB1總線上的,而位時(shí)序寄存器CAN_BTR中的BRP[9:0]寄存器位可以設(shè)置CAN外設(shè)時(shí)鐘的分頻值,所以:

Tq=(BRP[9:0]+1) x TPCLK

其中的PCLK指APB1時(shí)鐘,默認(rèn)值為36MHz。

最終可以計(jì)算出CAN通訊的波特率:BaudRate=1/NTq

CAN發(fā)送郵箱

它一共有3個(gè)發(fā)送郵箱,即最多可以緩存3個(gè)待發(fā)送的報(bào)文。每個(gè)發(fā)送郵箱中包含有標(biāo)識(shí)符寄存器CAN_TIxR、數(shù)據(jù)長(zhǎng)度控制寄存器CAN_TDTxR及2個(gè)數(shù)據(jù) 寄存器CAN_TDLxR、CAN_TDHxR,它們的功能如下表所示,當(dāng)我們要使用CAN外設(shè)發(fā)送報(bào)文時(shí),把報(bào)文的各個(gè)段分解,按位置寫入到這些寄存器中,并對(duì)標(biāo)識(shí)符寄存器CAN_TIxR中的發(fā)送請(qǐng)求寄存器位TMIDxR_TXRQ置1,即可把數(shù)據(jù)發(fā)送出去。

ebce507e-f50c-11f0-92de-92fbcf53809c.png

CAN接受FIFO

CKS32F107系列一共有2個(gè)接收FIFO,每個(gè)FIFO中有3個(gè)郵箱,即最多可以緩存6個(gè)接收到的報(bào)文。當(dāng)接收到報(bào)文時(shí),F(xiàn)IFO的報(bào)文計(jì)數(shù)器會(huì)自增,而CKS32F107內(nèi)部讀取FIFO數(shù)據(jù)之后,報(bào)文計(jì)數(shù)器會(huì)自減,我們通過狀態(tài)寄存器可獲知報(bào)文計(jì)數(shù)器的值,而通過前面主控制寄存器的RFLM位,可設(shè)置鎖定模式,鎖定模式下FIFO溢出時(shí)會(huì)丟棄新報(bào)文,非鎖定模式下FIFO溢出時(shí)新報(bào)文會(huì)覆蓋舊報(bào)文。跟發(fā)送郵箱類似,每個(gè)接收FIFO中包含有標(biāo)識(shí)符寄存器CAN_RIxR、數(shù)據(jù)長(zhǎng)度控制寄存器CAN_RDTxR及2個(gè)數(shù)據(jù)寄存器CAN_RDLxR、CAN_RDHxR,它們的功能見表發(fā)送郵箱的寄存器。通過中斷或狀態(tài)寄存器知道接收FIFO有數(shù)據(jù)后,我們?cè)僮x取這些寄存器的值即可把接收到的報(bào)文加載到MCU的內(nèi)存中。

ec32b2e4-f50c-11f0-92de-92fbcf53809c.png

驗(yàn)收篩選器

CAN 外設(shè)的驗(yàn)收篩選器,一共有28個(gè)篩選器組,每個(gè)篩選器組有2個(gè)寄存器,CAN1和CAN2共用篩選器。在CAN協(xié)議中,消息的標(biāo)識(shí)符與節(jié)點(diǎn)地址無關(guān),但與消息內(nèi)容有關(guān)。因此,發(fā)送節(jié)點(diǎn)將報(bào)文廣播給所有接收器時(shí),接收節(jié)點(diǎn)會(huì)根據(jù)報(bào)文標(biāo)識(shí)符的值來確定軟件是否需要該消息,為了簡(jiǎn)化軟件的工作,CAN外設(shè)接收?qǐng)?bào)文前會(huì)先使用驗(yàn)收篩選器檢查,只接收需要的報(bào)文到FIFO中。

初始化結(jié)構(gòu)體

從CKS32F107的CAN外設(shè)我們了解到它的功能非常多,控制涉及的寄存器也非常豐富,而使用標(biāo)準(zhǔn)庫(kù)提供的各種結(jié)構(gòu)體及庫(kù)函數(shù)可以簡(jiǎn)化這些控制過程。跟其它外設(shè)一樣,標(biāo)準(zhǔn)庫(kù)提供了CAN初始化結(jié)構(gòu)體及初始化函數(shù)來控制CAN的工作方式,提供了收發(fā)報(bào)文使用的結(jié)構(gòu)體及收發(fā)函數(shù),還有配置控制篩選器模式及ID 的結(jié)構(gòu)體。

列表1: 代碼清單:CAN初始化結(jié)構(gòu)體

typedef struct{

uint16_tCAN_Prescaler;

uint8_tCAN_Mode;

uint8_tCAN_SJW;

uint8_tCAN_BS1;

uint8_tCAN_BS2;

FunctionalState CAN_TTCM;

FunctionalState CAN_ABOM;

FunctionalState CAN_AWUM;

FunctionalState CAN_NART;

FunctionalState CAN_RFLM;

FunctionalState CAN_TXFP;

} CAN_InitTypeDef;

(1) CAN_Prescaler

本成員設(shè)置CAN外設(shè)的時(shí)鐘分頻,它可控制時(shí)間片Tq的時(shí)間長(zhǎng)度,這里設(shè)置的值最終會(huì)減1后再寫入BRP寄存器位,即前面介紹的Tq計(jì)算公式:

Tq = (BRP[9:0]+1) x TPCLK

等效于:Tq = CAN_Prescaler x TPCLK

(2) CAN_Mode

本成員設(shè)置CAN的工作模式,可設(shè)置為正常模式(CAN_Mode_Normal)、回環(huán) 模式(CAN_Mode_LoopBack)、靜默模式(CAN_Mode_Silent)以及回環(huán)靜默模式 (CAN_Mode_Silent_LoopBack)。

(3) CAN_SJW

本成員可以配置SJW的極限長(zhǎng)度,即CAN重新同步時(shí)單次可增加或縮短的最大長(zhǎng)度,它可以被配置為1-4Tq(CAN_SJW_1/2/3/4tq)。

(4) CAN_BS1

本成員用于設(shè)置 CAN 位時(shí)序中的 BS1 段的長(zhǎng)度,它可以被配置為 1-16 個(gè) Tq 長(zhǎng)度 (CAN_BS1_1/2/3…16tq)。

(5) CAN_BS2

本成員用于設(shè)置CAN位時(shí)序中的BS2段的長(zhǎng)度,它可以被配置為1-8個(gè)Tq 長(zhǎng)度(CAN_BS2_1/2/3…8tq)。 SYNC_SEG、BS1段及BS2段的長(zhǎng)度加起來即一個(gè)數(shù)據(jù)位的長(zhǎng)度,即前面介紹的原來計(jì)算公式:T1bit =1Tq+TS1+TS2 =1+ (TS1[3:0] +1)+ (TS2[2:0]+1) 等效于:T1bit = 1Tq+CAN_BS1+CAN_BS2

(6) CAN_TTCM

本成員用于設(shè)置是否使用時(shí)間觸發(fā)功能 (ENABLE/DISABLE),時(shí)間觸發(fā)功能在某些 CAN 標(biāo)準(zhǔn)中會(huì)使用到。

(7) CAN_ABOM

本成員用于設(shè)置是否使用自動(dòng)離線管理 (ENABLE/DISABLE),使用自動(dòng)離線管理可以 在節(jié)點(diǎn)出錯(cuò)離線后適時(shí)自動(dòng)恢復(fù),不需要軟件干預(yù)。

(8) CAN_ AWUM

本成員用于設(shè)置是否使用自動(dòng)喚醒功能 (ENABLE/DISABLE),使能自動(dòng)喚醒功能后它 會(huì)在監(jiān)測(cè)到總線活動(dòng)后自動(dòng)喚醒。

(9) CAN_ABOM

本成員用于設(shè)置是否使用自動(dòng)離線管理功能 (ENABLE/DISABLE),使用自動(dòng)離線管理 可以在出錯(cuò)時(shí)離線后適時(shí)自動(dòng)恢復(fù),不需要軟件干預(yù)。

(10)CAN_NART

本成員用于設(shè)置是否使用自動(dòng)重傳功能 (ENABLE/DISABLE),使用自動(dòng)重傳功能時(shí), 會(huì)一直發(fā)送報(bào)文直到成功為止。

(11)CAN_RFLM

本成員用于設(shè)置是否使用鎖定接收 FIFO(ENABLE/DISABLE),鎖定接收 FIFO 后,若 FIFO 溢出時(shí)會(huì)丟棄新數(shù)據(jù),否則在 FIFO 溢出時(shí)以新數(shù)據(jù)覆蓋舊數(shù)據(jù)。

(12)CAN_TXFP

本成員用于設(shè)置發(fā)送報(bào)文的優(yōu)先級(jí)判定方法 (ENABLE/DISABLE),使能時(shí),以報(bào)文存 入發(fā)送郵箱的先后順序來發(fā)送,否則按照?qǐng)?bào)文 ID 的優(yōu)先級(jí)來發(fā)送。 配置完這些結(jié)構(gòu)體成員后,我們調(diào)用庫(kù)函數(shù) CAN_Init 即可把這些參數(shù)寫入到 CAN 控制寄存器 中,實(shí)現(xiàn) CAN 的初始化。

CAN發(fā)送及接受結(jié)構(gòu)體

列表2:代碼清單:CAN發(fā)送及接收結(jié)構(gòu)體

typedef struct

{

uint32_t StdId;

uint32_t ExtId;

uint8_t IDE;

uint8_t RTR;

uint8_t DLC;

uint8_t Data[8];

} CanTxMsg;

typedef struct

{

uint32_t StdId;

uint32_t ExtId;

uint8_t IDE;

uint8_t RTR;

uint8_t DLC;

uint8_t Data[8];

uint8_t FMI;

} CanRxMsg;

(1) StdId

本成員存儲(chǔ)的是報(bào)文的11位標(biāo)準(zhǔn)標(biāo)識(shí)符,范圍是0-0x7FF。

(2) ExtId

本成員存儲(chǔ)的是報(bào)文的29位擴(kuò)展標(biāo)識(shí)符,范圍是0-0x1FFFFFFF。ExtId 與 StdId這兩個(gè)成員根據(jù)下面的IDE位配置,只有一個(gè)是有效的。

(3) IDE

本成員存儲(chǔ)的是擴(kuò)展標(biāo)志IDE位,當(dāng)它的值為宏CAN_ID_STD時(shí)表示本報(bào)文是標(biāo)準(zhǔn)幀,使用StdId成員存儲(chǔ)報(bào)文ID;當(dāng)它的值為宏CAN_ID_EXT 時(shí)表示本報(bào)文是擴(kuò)展幀,使用ExtId成員存儲(chǔ)報(bào)文ID。

(4) RTR

本成員存儲(chǔ)的是報(bào)文類型標(biāo)志RTR位,當(dāng)它的值為宏CAN_RTR_Data 時(shí)表示本報(bào)文是數(shù)據(jù)幀;當(dāng)它的值為宏CAN_RTR_Remote時(shí)表示本報(bào)文是遙控幀,由于遙控幀沒有數(shù)據(jù)段,所以當(dāng)報(bào)文是遙控幀時(shí),下面的Data[8]成員的內(nèi)容是無效的。

(5)DLC

本成員存儲(chǔ)的是數(shù)據(jù)幀數(shù)據(jù)段的長(zhǎng)度,它的值的范圍是0-8,當(dāng)報(bào)文是遙控幀時(shí)DLC值為0。

(6) Data[8]

本成員存儲(chǔ)的就是數(shù)據(jù)幀中數(shù)據(jù)段的數(shù)據(jù)。

(7)FMI

本成員只存在于接收結(jié)構(gòu)體,它存儲(chǔ)了篩選器的編號(hào),表示本報(bào)文是經(jīng)過哪個(gè)篩選器存儲(chǔ)進(jìn)接收FIFO的,可以用它簡(jiǎn)化軟件處理。當(dāng)需要使用CAN發(fā)送報(bào)文時(shí),先定義一個(gè)上面發(fā)送類型的結(jié)構(gòu)體,然后把報(bào)文的內(nèi)容按成員賦值到該結(jié)構(gòu)體中,最后調(diào)用庫(kù)函數(shù)CAN_Transmit把這些內(nèi)容寫入到發(fā)送郵箱即可把報(bào)文發(fā)送出去。 接收?qǐng)?bào)文時(shí),通過檢測(cè)標(biāo)志位獲知接收FIFO的狀態(tài),若收到報(bào)文,可調(diào)用庫(kù)函數(shù)CAN_Receive把接收FIFO中的內(nèi)容讀取到預(yù)先定義的接收類型結(jié)構(gòu)體中,然后再訪問該結(jié)構(gòu)體即可利用報(bào)文了。

CAN篩選器結(jié)構(gòu)體

列表3: 代碼清單:CAN篩選器結(jié)構(gòu)體

typedef struct

{

uint16_t CAN_FilterIdHigh;

uint16_t CAN_FilterIdLow;

uint16_t CAN_FilterMaskIdHigh;

uint16_t CAN_FilterMaskIdLow;

uint16_t CAN_FilterFIFOAssignment;

uint8_t CAN_FilterNumber;

uint8_t CAN_FilterMode;

uint8_t CAN_FilterScale;

FunctionalState CAN_FilterActivation;

} CAN_FilterInitTypeDef;

(1) CAN_FilterIdHigh

CAN_FilterIdHigh成員用于存儲(chǔ)要篩選的ID,若篩選器工作在32位模式,它存儲(chǔ)的是所篩選ID的高16位;若篩選器工作在16位模式,它存儲(chǔ)的就是一個(gè)完整的要篩選的ID。

(2) CAN_FilterIdLow

類似地,CAN_FilterIdLow 成員也是用于存儲(chǔ)要篩選的ID,若篩選器工作在32位模式,它存儲(chǔ)的是所篩選ID的低16位;若篩選器工作在16位模式,它存儲(chǔ)的就是一個(gè)完整的要篩選的ID。

(3) CAN_FilterMaskIdHigh

CAN_FilterMaskIdHigh存儲(chǔ)的內(nèi)容分兩種情況,當(dāng)篩選器工作在標(biāo)識(shí)符列表模式時(shí),它的功能與CAN_FilterIdHigh相同,都是存儲(chǔ)要篩選的ID;而當(dāng)篩選器工作在掩碼模式時(shí),它存儲(chǔ)的是CAN_FilterIdHigh成員對(duì)應(yīng)的掩碼,與CAN_FilterIdLow組成一組篩選器。

(4) CAN_FilterMaskIdLow

類似地,CAN_FilterMaskIdLow存儲(chǔ)的內(nèi)容也分兩種情況,當(dāng)篩選器工作在標(biāo)識(shí)符列表模式時(shí),它的功能與CAN_FilterIdLow 相同,都是存儲(chǔ)要篩選的ID;而當(dāng)篩選器工作在掩碼模式時(shí),它存儲(chǔ)的是 CAN_FilterIdLow 成員對(duì)應(yīng)的掩碼,與 CAN_FilterIdLow 組成一組篩選器。

(5) CAN_FilterFIFOAssignment

本成員用于設(shè)置當(dāng)報(bào)文通過篩選器的匹配后,該報(bào)文會(huì)被存儲(chǔ)到哪一個(gè)接收 FIFO,它的可選值為 FIFO0或FIFO1(宏CAN_Filter_FIFO0/1)。

(6) CAN_FilterNumber

本成員用于設(shè)置篩選器的編號(hào),即本過濾器結(jié)構(gòu)體配置的是哪一組篩選器,CAN一共有28個(gè)篩選器,所以它的可輸入?yún)?shù)范圍為0-27。

(7) CAN_FilterMode

本成員用于設(shè)置篩選器的工作模式,可以設(shè)置為列表模式(宏 CAN_FilterMode_IdList)及掩碼模式(宏 CAN_FilterMode_IdMask)

(8) CAN_FilterScale

本成員用于設(shè)置篩選器的尺度,可以設(shè)置為32位長(zhǎng)(宏 CAN_FilterScale_32bit) 及16位長(zhǎng) (宏 CAN_FilterScale_16bit)

(9) CAN_FilterActivation

本成員用于設(shè)置是否激活這個(gè)篩選器 (宏 ENABLE/DISABLE)。 配置完這些結(jié)構(gòu)體成員后,我們調(diào)用庫(kù)函數(shù)CAN_FilterInit 即可把這些參數(shù)寫入到篩選控制寄存器中,從而使用篩選器。

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

    關(guān)注

    147

    文章

    19012

    瀏覽量

    400296
  • 控制器
    +關(guān)注

    關(guān)注

    114

    文章

    17826

    瀏覽量

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

    關(guān)注

    31

    文章

    5612

    瀏覽量

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

    關(guān)注

    59

    文章

    3075

    瀏覽量

    472994

原文標(biāo)題:MCU微課堂|CKS32F107XX系列bxCAN介紹

文章出處:【微信號(hào):中科芯MCU,微信公眾號(hào):中科芯MCU】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    中科CKS32F107XX系列MCU的獨(dú)立看門狗介紹

    中科CKS32F107xx系列產(chǎn)品內(nèi)部提供兩個(gè)看門狗定時(shí)器單元,獨(dú)立型看門狗IWDG(Independent Watchdog)和窗口型看門狗WWDG(Window Watchdog
    的頭像 發(fā)表于 11-28 14:51 ?3918次閱讀
    <b class='flag-5'>中科</b><b class='flag-5'>芯</b><b class='flag-5'>CKS32F107XX</b><b class='flag-5'>系列</b><b class='flag-5'>MCU</b>的獨(dú)立看門狗<b class='flag-5'>介紹</b>

    中科CKS32F107XX系列MCU的窗口看門狗介紹

    中科CKS32F107xx系列產(chǎn)品內(nèi)部提供兩個(gè)看門狗定時(shí)器單元,獨(dú)立型看門狗IWDG(Independent Watchdog)和窗口型看門狗WWDG(Window Watchdog
    的頭像 發(fā)表于 11-28 14:48 ?4193次閱讀
    <b class='flag-5'>中科</b><b class='flag-5'>芯</b><b class='flag-5'>CKS32F107XX</b><b class='flag-5'>系列</b><b class='flag-5'>MCU</b>的窗口看門狗<b class='flag-5'>介紹</b>

    MCU微課堂|CKS32F4xx系列產(chǎn)品時(shí)鐘配置

    作為MCU運(yùn)行的基礎(chǔ),時(shí)鐘是單片機(jī)各個(gè)模塊工作時(shí)序的最小時(shí)間單位,推動(dòng)單片機(jī)的各指令執(zhí)行,是MCU選型的一個(gè)重要指標(biāo)。CKS32F4xx系列產(chǎn)品具有眾多的外設(shè),但并非所有的外設(shè)均需要系
    發(fā)表于 12-12 10:17 ?1327次閱讀

    中科推出面向CKS32位MCU的編程調(diào)試工具

    隨著中科MCU在市場(chǎng)上越來越多的被應(yīng)用,為了更好的支持客戶在使用中科32位MCU芯片時(shí)的仿真
    的頭像 發(fā)表于 12-26 15:21 ?3294次閱讀

    CKS32F4xx系列產(chǎn)品串口DMA傳輸

    在上一講,我們講過CKS32F4xx系列的6個(gè)串口都支持DMA傳輸。因此本節(jié)我們對(duì)CKS32F4xx系列的DMA進(jìn)行介紹,同時(shí)利用DMA對(duì)串
    的頭像 發(fā)表于 04-10 11:18 ?2117次閱讀

    CKS32F4xx系列DAC功能

    CKS32F4xx系列DAC功能
    的頭像 發(fā)表于 11-06 16:56 ?1797次閱讀
    <b class='flag-5'>CKS32F4xx</b><b class='flag-5'>系列</b>DAC功能

    MCU微課堂 | CKS32F4xx系列產(chǎn)品SPI通信

    MCU微課堂 | CKS32F4xx系列產(chǎn)品SPI通信
    的頭像 發(fā)表于 10-24 17:12 ?1728次閱讀
    <b class='flag-5'>MCU</b>微課堂 | <b class='flag-5'>CKS32F4xx</b><b class='flag-5'>系列</b>產(chǎn)品SPI通信

    MCU微課堂 | CKS32F4xx系列產(chǎn)品GPIO口配置

    MCU微課堂 | CKS32F4xx系列產(chǎn)品GPIO口配置
    的頭像 發(fā)表于 10-24 15:14 ?1613次閱讀
    <b class='flag-5'>MCU</b>微課堂 | <b class='flag-5'>CKS32F4xx</b><b class='flag-5'>系列</b>產(chǎn)品GPIO口配置

    CKS32F107xx系列時(shí)鐘組成介紹

    作為MCU運(yùn)行的基礎(chǔ),時(shí)鐘是MCU各個(gè)模塊工作時(shí)序的最小時(shí)間單位,推動(dòng)MCU的各指令執(zhí)行,是MCU選型的一個(gè)重要指標(biāo)。
    的頭像 發(fā)表于 05-20 14:04 ?1221次閱讀
    <b class='flag-5'>CKS32F107xx</b><b class='flag-5'>系列</b>時(shí)鐘組成<b class='flag-5'>介紹</b>

    CKS32F107xx系列時(shí)鐘系統(tǒng)具體配置方法講解

    上一章節(jié)對(duì)CKS32F107xx系列時(shí)鐘做了整體介紹,本章節(jié)以使用HSI內(nèi)部高速時(shí)鐘為例對(duì)時(shí)鐘具體配置方法進(jìn)行講解。
    的頭像 發(fā)表于 05-28 10:05 ?1653次閱讀
    <b class='flag-5'>CKS32F107xx</b><b class='flag-5'>系列</b>時(shí)鐘系統(tǒng)具體配置方法講解

    CKS32F107xx系列MCU中ADC介紹

    CKS32F107xx系列產(chǎn)品提供2個(gè)12位的模擬/數(shù)字轉(zhuǎn)換器(ADC),每個(gè)ADC共用多達(dá)16個(gè)外部通道,各通道的A/D轉(zhuǎn)換可以單次、連續(xù)、掃描或間斷模式執(zhí)行。ADC的結(jié)果可以左對(duì)齊或右對(duì)齊方式存儲(chǔ)在16位數(shù)據(jù)寄存器中。
    的頭像 發(fā)表于 06-22 11:04 ?1947次閱讀

    CKS32F107xx系列MCU的GPIO內(nèi)部硬件結(jié)構(gòu)和工作模式

    16個(gè)引腳,如型號(hào)為CKS2F107VET6型號(hào)的芯片有GPIOA、GPIOB、GPIOC至GPIOE共5組GPIO,芯片一共100個(gè)引腳,其中GPIO就占了一大部分,所有的GPIO引腳都有基本的輸入輸出功能。
    的頭像 發(fā)表于 07-22 09:23 ?1946次閱讀
    <b class='flag-5'>CKS32F107xx</b><b class='flag-5'>系列</b><b class='flag-5'>MCU</b>的GPIO內(nèi)部硬件結(jié)構(gòu)和工作模式

    詳解CKS32F107xx系列的定時(shí)器同步功能

    CKS32F107xx系列部分定時(shí)器在內(nèi)部是相連的,可用于定時(shí)器同步或鏈接,方便用戶配置不同的同步模式,以便在電機(jī)控制、數(shù)據(jù)采集和PWM信號(hào)生成等應(yīng)用中,實(shí)現(xiàn)復(fù)雜的時(shí)間序列和多通道的同步操作。本節(jié)課
    的頭像 發(fā)表于 11-26 17:51 ?1800次閱讀
    詳解<b class='flag-5'>CKS32F107xx</b><b class='flag-5'>系列</b>的定時(shí)器同步功能

    CKS32F107xx系列USART的LIN模式

    CKS32F107xx系列在支持正常USART功能的同時(shí),亦支持LIN(局域互聯(lián)網(wǎng))模式。
    的頭像 發(fā)表于 02-18 17:18 ?1238次閱讀
    <b class='flag-5'>CKS32F107xx</b><b class='flag-5'>系列</b>USART的LIN模式

    中科CKS32F107XX系列MCU的電源控制介紹

    CKS32F107xx的工作電壓(VDD)為2.0~3.6V,通過內(nèi)置的電壓調(diào)節(jié)器提供內(nèi)核所需的1.5V電源,圖1為電源系統(tǒng)框架。
    的頭像 發(fā)表于 03-25 16:34 ?208次閱讀
    <b class='flag-5'>中科</b><b class='flag-5'>芯</b><b class='flag-5'>CKS32F107XX</b><b class='flag-5'>系列</b><b class='flag-5'>MCU</b>的電源控制<b class='flag-5'>介紹</b>