68精品久久久久久欧美,最近中文字幕完整在线看一,久久亚洲男人天堂,最近中文字幕完整视频高清1

你好!歡迎來(lái)到深圳市穎特新科技有限公司!
語(yǔ)言
當(dāng)前位置:首頁(yè) >> HK32/航順 >> 航順芯片HK32F103CAN的驅(qū)動(dòng)應(yīng)用

航順芯片HK32F103CAN的驅(qū)動(dòng)應(yīng)用

關(guān)鍵字:航順芯片 HK32F103 CAN的驅(qū)動(dòng)應(yīng)用 作者: 來(lái)源: 發(fā)布時(shí)間:2022-04-15  瀏覽:10

航順芯片HK32F103系列是一款功能強(qiáng)大的32bit MCU,內(nèi)部集成多個(gè)通信模塊,其中CAN模塊支持CAN協(xié)議2.0A和2.0B。目前廣泛應(yīng)用的是CAN 2.0B協(xié)議,其收發(fā)數(shù)據(jù)速度高達(dá)1Mbps,有兩種不同長(zhǎng)度的ID標(biāo)識(shí)符,分別是11位和29位的。

HK32F103系列CAN接口協(xié)議的主要特點(diǎn):

(1) 多主控制:

總線(xiàn)空閑時(shí),所有的單元均可開(kāi)始發(fā)送消息。

(2) 消息的發(fā)送:

在 CAN 協(xié)議中,所有的消息都以固定的格式發(fā)送,總線(xiàn)空閑時(shí),所有與總線(xiàn)相連的單元都可以開(kāi)始發(fā)送新消息。兩個(gè)以上的單元同時(shí)開(kāi)始發(fā)送消息時(shí),根據(jù)標(biāo)識(shí)符( Identifier 以下稱(chēng)為 ID)決定優(yōu)先級(jí)。 ID 并不是表示發(fā)送的目的地址,而是表示訪(fǎng)問(wèn)總線(xiàn)的消息的優(yōu)先級(jí)。兩個(gè)以上的單元同時(shí)開(kāi)始發(fā)送消息時(shí),對(duì)各消息ID的每個(gè)位進(jìn)行逐個(gè)仲裁比較。仲裁獲勝(被判定為優(yōu)先級(jí)最高)的單元可繼續(xù)發(fā)送消息,仲裁失利的單元?jiǎng)t立刻停止發(fā)送而進(jìn)行接收工作。即多個(gè)單元同時(shí)開(kāi)始發(fā)送時(shí),發(fā)送高優(yōu)先級(jí) ID 消息的單元可獲得發(fā)送權(quán)。

(3) 系統(tǒng)的柔軟性:

與總線(xiàn)相連的CAN節(jié)點(diǎn)沒(méi)有類(lèi)似于“地址”的信息。因此在總線(xiàn)上增加CAN節(jié)點(diǎn)時(shí),連接在總線(xiàn)上的其它CAN節(jié)點(diǎn)的軟硬件及應(yīng)用層都不需要改變。

(4) 通信速度:

根據(jù)整個(gè)網(wǎng)絡(luò)的規(guī)模,可設(shè)定適合的通信速度。在同一網(wǎng)絡(luò)中,所有CAN節(jié)點(diǎn)必須設(shè)定成統(tǒng)一的通信速度。即使有一個(gè)CAN節(jié)點(diǎn)的通信速度與其它的不一樣,此CAN節(jié)點(diǎn)也會(huì)輸出錯(cuò)誤信號(hào),妨礙整個(gè)網(wǎng)絡(luò)的通信。不同網(wǎng)絡(luò)間則可以有不同的通信速度。

(5) 錯(cuò)誤檢測(cè)功能·錯(cuò)誤通知功能·錯(cuò)誤恢復(fù)功能:

所有的CAN節(jié)點(diǎn)都可以檢測(cè)錯(cuò)誤(錯(cuò)誤檢測(cè)功能)

(6) 遠(yuǎn)程數(shù)據(jù)請(qǐng)求:

所有的CAN節(jié)點(diǎn)都可以檢測(cè)錯(cuò)誤(錯(cuò)誤檢測(cè)功能)

檢測(cè)出錯(cuò)誤的CAN節(jié)點(diǎn)會(huì)立即同時(shí)通知其他所有CAN節(jié)點(diǎn)(錯(cuò)誤通知功能)

正在發(fā)送消息的CAN節(jié)點(diǎn)一旦檢測(cè)出錯(cuò)誤,會(huì)強(qiáng)制結(jié)束當(dāng)前的發(fā)送。強(qiáng)制結(jié)束發(fā)送的CAN節(jié)點(diǎn)會(huì)不斷反復(fù)重新發(fā)送此消息直到成功發(fā)送為止(錯(cuò)誤恢復(fù)功能)。

(7) 故障封閉:

CAN 可以判斷出錯(cuò)誤的類(lèi)型是總線(xiàn)上暫時(shí)的數(shù)據(jù)錯(cuò)誤(如外部噪聲等)還是持續(xù)的數(shù)據(jù)錯(cuò)誤(如單元內(nèi)部故障、驅(qū)動(dòng)器故障、斷線(xiàn)等)。由此功能,當(dāng)總線(xiàn)上發(fā)生持續(xù)數(shù)據(jù)錯(cuò)誤時(shí),可將引起此故障的CAN節(jié)點(diǎn)從總線(xiàn)上隔離出去。

(8) 位填充: CAN通信的同步信息包含于傳輸數(shù)據(jù)中,電平的跳轉(zhuǎn)提供了同步信息,如果連續(xù)多個(gè)相同的總線(xiàn)值出現(xiàn),這將影響到同步信息的提取。為此CAN采用位填充規(guī)則,即在一幀中的幀起始,仲裁場(chǎng),控制場(chǎng),數(shù)據(jù)場(chǎng)和CRC場(chǎng)部分( CRC界定符,應(yīng)答幀和幀結(jié)束除外),當(dāng)發(fā)送器檢測(cè)到5個(gè)具有相同數(shù)值的連續(xù)位時(shí),將自動(dòng)插入一個(gè)補(bǔ)碼位。接收節(jié)點(diǎn)收到5個(gè)連續(xù)位后下一位自動(dòng)刪除。

(9) 連接:

CAN 總線(xiàn)是可同時(shí)連接多個(gè)CAN節(jié)點(diǎn)的總線(xiàn)?蛇B接的節(jié)點(diǎn)總數(shù)理論上是沒(méi)有限制的。但實(shí)際上可連接的節(jié)點(diǎn)數(shù)受總線(xiàn)上的時(shí)間延遲及電氣負(fù)載的限制。降低通信速度,可連接的CAN節(jié)點(diǎn)數(shù)增加;提高通信速度,則可連接的CAN節(jié)點(diǎn)數(shù)減少。如下是CAN通信速度和距離對(duì)應(yīng)圖:

航順芯片HK32F103CAN的驅(qū)動(dòng)應(yīng)用

(9) CAN總線(xiàn)物理框架可以抽象為:

MCU(微處理器) <--> CAN控制器 <--> CAN收發(fā)器 <--> CAN數(shù)據(jù)傳輸總線(xiàn)(CAN-H,CAN-L)。如下所示:

航順芯片HK32F103CAN的驅(qū)動(dòng)應(yīng)用

CAN總線(xiàn)的數(shù)據(jù)傳輸線(xiàn)——>兩條雙向數(shù)據(jù)線(xiàn),分為高位﹝CAN-H﹞和低位﹝CAN-L﹞數(shù)據(jù)線(xiàn), 為了防止外界電磁波干擾和向外輻射,兩條數(shù)據(jù)線(xiàn)纏繞在一起,要求至少每 2.5cm 就要扭絞一次,兩條線(xiàn)上的電位是相反的,電壓的和總等于常值。

CAN總線(xiàn)的終端電阻——>防止數(shù)據(jù)在到達(dá)線(xiàn)路終端后象回聲一樣返回,并因此而干擾原始數(shù)據(jù),從而保證了數(shù)據(jù)的正確傳送,終端電阻裝在控制單元內(nèi)。

CAN總線(xiàn)幀類(lèi)型:

數(shù)據(jù)幀-Data frame

攜帶數(shù)據(jù)從發(fā)送節(jié)點(diǎn)到接收節(jié)點(diǎn)。

分為標(biāo)準(zhǔn)幀(11位標(biāo)識(shí)符)和擴(kuò)展幀(29位標(biāo)識(shí)符)。

航順芯片HK32F103CAN的驅(qū)動(dòng)應(yīng)用




        遠(yuǎn)程幀-Remote frame
向其他節(jié)點(diǎn)請(qǐng)求發(fā)送具有同一標(biāo)識(shí)符的數(shù)據(jù)幀, 遠(yuǎn)程幀也有標(biāo)準(zhǔn)幀和擴(kuò)展幀兩種格式。
航順芯片HK32F103CAN的驅(qū)動(dòng)應(yīng)用



例如CAN節(jié)點(diǎn)A需要知道CAN節(jié)點(diǎn)B的油溫溫度,CAN節(jié)點(diǎn)A發(fā)送一個(gè)遠(yuǎn)程幀給節(jié)點(diǎn)B,節(jié)點(diǎn)B收到該遠(yuǎn)程幀后發(fā)送一個(gè)帶油溫?cái)?shù)據(jù)的數(shù)據(jù)幀給節(jié)點(diǎn)A。

錯(cuò)誤幀-Error frame
        節(jié)點(diǎn)檢測(cè)到錯(cuò)誤之后發(fā)送錯(cuò)誤幀。
                錯(cuò)誤標(biāo)志: 主動(dòng)錯(cuò)誤標(biāo)志(000000)和被動(dòng)錯(cuò)誤標(biāo)志(111111)。
                錯(cuò)誤界定符:11111111。
航順芯片HK32F103CAN的驅(qū)動(dòng)應(yīng)用



        過(guò)載幀-Overload frame
        接收節(jié)點(diǎn)通知其尚未做好接收準(zhǔn)備, 過(guò)載標(biāo)志(過(guò)載標(biāo)志重疊部分)+過(guò)載標(biāo)志界定符。
航順芯片HK32F103CAN的驅(qū)動(dòng)應(yīng)用



       
以下是關(guān)于CAN幀/報(bào)文中各個(gè)部分的說(shuō)明:
幀起始:SOF
0,占用1位。當(dāng)總線(xiàn)空閑時(shí)發(fā)送,用于CAN總線(xiàn)上的每個(gè)節(jié)點(diǎn)的信息同步。
仲裁段:ID+RTR
                ID:
                        表示數(shù)據(jù)幀的優(yōu)先級(jí),先發(fā)送高位再發(fā)送低位。 11位或29位長(zhǎng)度。
                RTR(Remote Transmit Request):
                        0: 表示該CAN幀是數(shù)據(jù)幀。
                        1: 表示該CAN幀是遠(yuǎn)程幀。
控制段:IDE+r0+DLC
        IDE(IDentifier Extension):
                0: 標(biāo)準(zhǔn)格式。
                1: 擴(kuò)展格式。
        保留位r0:
                0。
                保留位r1:
                        0。
                DLC(Data Length Code):
                        表示數(shù)據(jù)域中的字節(jié)數(shù),范圍0~8.
數(shù)據(jù)段:Data
CRC段:CRC Sequence+CRC界定符
        CRC polynomial:
x15+x14+x10+x8+x7+x4+x3+1
        CRC界定符:
                1.
ACK段:ACK Slot+ACK界定符
接收到匹配CRC序列的節(jié)點(diǎn)會(huì)在應(yīng)答位期間,寫(xiě)0在發(fā)送器的隱性位作為回應(yīng)。
        ACK界定符:
                1.
幀結(jié)束:EOF
        1111111,表示數(shù)據(jù)幀或遠(yuǎn)程幀的結(jié)束。
SRR(Substitute Remote Request):
        1, 擴(kuò)展幀中代替RTR位.
CAN總線(xiàn)通信機(jī)制—報(bào)文發(fā)送
        -載波偵聽(tīng)和帶沖突檢測(cè)協(xié)議的多路訪(fǎng)問(wèn)( CSMA/CD)
-發(fā)送節(jié)點(diǎn):回讀;
接收節(jié)點(diǎn):監(jiān)聽(tīng)
-線(xiàn)與機(jī)制:
所有節(jié)點(diǎn)發(fā)送1,總線(xiàn)上才是1;有一個(gè)節(jié)點(diǎn)發(fā)送0,總線(xiàn)上就是0,即高電平是隱性位,低電平是顯性位。
-總線(xiàn)仲裁:如果有兩個(gè)或兩個(gè)以上的節(jié)點(diǎn)同時(shí)向總線(xiàn)上發(fā)送數(shù)據(jù),標(biāo)識(shí)符小的獲得仲裁,標(biāo)識(shí)符大的退出仲裁(回讀和線(xiàn)與)。
例如:
ID1:00000000010
ID2:00000000001
航順芯片HK32F103CAN的驅(qū)動(dòng)應(yīng)用



CAN總線(xiàn)通信機(jī)制—報(bào)文接收




        如果總線(xiàn)上有數(shù)據(jù)正在發(fā)送,所有節(jié)點(diǎn)都會(huì)接收總線(xiàn)數(shù)據(jù),只有通過(guò)接收節(jié)點(diǎn)的報(bào)文過(guò)濾規(guī)則才能被節(jié)點(diǎn)接收進(jìn)控制器。
航順芯片HK32F103CAN的驅(qū)動(dòng)應(yīng)用



       
CAN的錯(cuò)誤狀態(tài):
主動(dòng)錯(cuò)誤狀態(tài):主動(dòng)錯(cuò)誤狀態(tài)是可以正常參加總線(xiàn)通信的狀態(tài)。處于主動(dòng)錯(cuò)誤狀態(tài)的單元檢測(cè)出錯(cuò)誤時(shí),輸出主動(dòng)錯(cuò)誤標(biāo)志。
    被動(dòng)錯(cuò)誤狀態(tài): 被動(dòng)錯(cuò)誤狀態(tài)是易引起錯(cuò)誤的狀態(tài)。 處于被動(dòng)錯(cuò)誤狀態(tài)的單元檢測(cè)出錯(cuò)誤時(shí),輸出被動(dòng)錯(cuò)誤標(biāo)志。處于被動(dòng)錯(cuò)誤狀態(tài)的單元即使檢測(cè)出錯(cuò)誤,而其它處于主動(dòng)錯(cuò)誤狀態(tài)的單元如果沒(méi)發(fā)現(xiàn)錯(cuò)誤,整個(gè)總線(xiàn)也被認(rèn)為是沒(méi)有錯(cuò)誤的。
  總線(xiàn)關(guān)閉狀態(tài):總線(xiàn)關(guān)閉態(tài)是不能參加總線(xiàn)上通信的狀態(tài)。信息的接收和發(fā)送均被禁止。
航順芯片HK32F103CAN的驅(qū)動(dòng)應(yīng)用



錯(cuò)誤類(lèi)型:
航順芯片HK32F103CAN的驅(qū)動(dòng)應(yīng)用



現(xiàn)在以航順芯片的HK32F103VET6(LQFP-100)為例來(lái)說(shuō)明CAN通信的驅(qū)動(dòng)實(shí)現(xiàn)。HK32F103VET6是航順芯片的一款功能強(qiáng)大的32位MCU,內(nèi)部集成CAN控制器,因此進(jìn)行CAN通信時(shí),只需要外接一個(gè)CAN收發(fā)器。
由HK32F103芯片的datasheet,如下截圖我們得知,CAN的發(fā)送引腳為PA12,接收引腳為PA11。







由HK32F103芯片的用戶(hù)手冊(cè),如下截圖,得知需要把CAN的發(fā)送引腳PA12設(shè)置為推挽復(fù)用輸出,CAN的接收引腳PA11設(shè)置為浮空輸入或上拉輸入。
航順芯片HK32F103CAN的驅(qū)動(dòng)應(yīng)用



詳細(xì)的GPIO配置,依據(jù)該芯片的用戶(hù)手冊(cè)的表8-1:
航順芯片HK32F103CAN的驅(qū)動(dòng)應(yīng)用



因此,軟件中對(duì)引腳的設(shè)置如下:
航順芯片HK32F103CAN的驅(qū)動(dòng)應(yīng)用



這里,我們使用TJA1050作為CAN收發(fā)器,原理示意圖如下:




將CAN_D連接HK32F103VET6芯片的引腳PA12,CAN_R連接HK32F103VET6芯片的引腳PA11,CANL和CANH接外部CAN總線(xiàn)(即前文提到的CAN-L和CAN-H)。
軟件驅(qū)動(dòng)方面,首先應(yīng)該使能CAN模塊的時(shí)鐘,如下:
航順芯片HK32F103CAN的驅(qū)動(dòng)應(yīng)用



HK32F103VET6芯片CAN模塊(后續(xù)我們簡(jiǎn)稱(chēng)其為bxCAN)有3個(gè)主要的工作模式:初始化、正常和睡眠模式。在硬件復(fù)位后,bxCAN 工作在睡眠模式以節(jié)省電能,同時(shí) CANTX 引腳的內(nèi)部上拉電阻被激活。軟件通過(guò)對(duì) CAN_MCR 寄存器的INRQ或SLEEP 位置’1’,可以請(qǐng)求 bxCAN 進(jìn)入初始化或睡眠模式。一旦進(jìn)入了初始化或睡眠模式,bxCAN 就對(duì) CAN_MSR 寄存器的 INAK 或 SLAK 位置’1’來(lái)進(jìn)行確認(rèn),同時(shí)內(nèi)部上拉電阻被禁用。當(dāng)INAK 和 SLAK 位都為’0’時(shí),bxCAN 就處于正常模式。在進(jìn)入正常模式前,bxCAN 必須跟 CAN 總線(xiàn)取得同步;為取得同步,bxCAN 要等待 CAN 總線(xiàn)達(dá)到空閑狀態(tài),即在 CANRX 引腳上監(jiān)測(cè)到 11 個(gè)連續(xù)的隱性位。
因此我們需要把CAN模塊設(shè)置為初始化模式,如下:
航順芯片HK32F103CAN的驅(qū)動(dòng)應(yīng)用



在初始化模式設(shè)置成功之后,根據(jù)具體應(yīng)用的要求,設(shè)置自動(dòng)離線(xiàn)(Bus-Off)管理、自動(dòng)喚醒模式、是否禁止報(bào)文自動(dòng)重傳、接收FIFO鎖定模式、發(fā)送 FIFO 優(yōu)先級(jí)等,如下示例:
航順芯片HK32F103CAN的驅(qū)動(dòng)應(yīng)用


航順芯片HK32F103CAN的驅(qū)動(dòng)應(yīng)用




CAN通信過(guò)程中,很重要的一點(diǎn)是設(shè)置通信速率,bxCAN的通信速率設(shè)置依據(jù)HK32F103VET6用戶(hù)手冊(cè)中的:
航順芯片HK32F103CAN的驅(qū)動(dòng)應(yīng)用



我們現(xiàn)在要設(shè)置500Kbps的通信速度,那么需要設(shè)置APB時(shí)鐘頻率為36MHz,還需要設(shè)置位BRP=3,TS1=8,TS2=7,如下:
航順芯片HK32F103CAN的驅(qū)動(dòng)應(yīng)用



至此,CAN初始化中幾個(gè)重要特性已經(jīng)設(shè)置好,可以把CAN模塊設(shè)置位正常模式,以便正常地發(fā)送報(bào)文。從初始化模式切換為正常模式的設(shè)置,如下:
航順芯片HK32F103CAN的驅(qū)動(dòng)應(yīng)用



報(bào)文的發(fā)送,其核心在于正確操作CAN_TIxR、CAN_TDTxR、CAN_TDLxR、CAN_TDHxR寄存器,如下為例,發(fā)送標(biāo)準(zhǔn)格式的ID=0x12的8字節(jié)長(zhǎng)度的CAN數(shù)據(jù)幀報(bào)文。
航順芯片HK32F103CAN的驅(qū)動(dòng)應(yīng)用


航順芯片HK32F103CAN的驅(qū)動(dòng)應(yīng)用




并通過(guò)對(duì)應(yīng)的狀態(tài)寄存器檢查發(fā)送成功與否:
航順芯片HK32F103CAN的驅(qū)動(dòng)應(yīng)用



某個(gè)CAN節(jié)點(diǎn)要接收哪些CAN報(bào)文,由其CAN接收規(guī)則(或者稱(chēng)為接收過(guò)濾器)設(shè)定。在接收到有效的報(bào)文之前,應(yīng)該先設(shè)置好其接收規(guī)則。為此,HK32F103VET6的bxCAN 控制器為應(yīng)用程序提供了 14 個(gè)位寬可變的、可配置的過(guò)濾器組(13~0),以便只接收那些軟件需要的報(bào)文。硬件過(guò)濾的做法節(jié)省了 CPU 開(kāi)銷(xiāo),否則就必須由軟件過(guò)濾從而占用很大的 CPU開(kāi)銷(xiāo)。每個(gè)過(guò)濾器組x由2個(gè)32位寄存器,CAN_FiR1和CAN_FiR2【(CAN_FiRx) (i=0..13; x=1..2)】,組成。
每個(gè)過(guò)濾器組的位寬都可以獨(dú)立配置,以滿(mǎn)足應(yīng)用程序的不同需求。根據(jù)位寬的不同,每個(gè)過(guò)濾器組可提供:
• 1 個(gè) 32 位過(guò)濾器,包括:STDID[10:0]、EXTID[17:0]、IDE 和 RTR 位
• 2 個(gè) 16 位過(guò)濾器,包括:STDID[10:0]、IDE、RTR 和 EXTID[17:15]位
此外過(guò)濾器可配置為,屏蔽位模式和標(biāo)識(shí)符列表模式。
在屏蔽位模式下,標(biāo)識(shí)符寄存器和屏蔽寄存器一起,指定報(bào)文標(biāo)識(shí)符的任何一位,應(yīng)該按照“必須匹配”或“不用關(guān)心”處理。
在標(biāo)識(shí)符列表模式下,屏蔽寄存器也被當(dāng)作標(biāo)識(shí)符寄存器用。因此,不是采用一個(gè)標(biāo)識(shí)符加一個(gè)屏蔽位的方式,而是使用 2 個(gè)標(biāo)識(shí)符寄存器。接收?qǐng)?bào)文標(biāo)識(shí)符的每一位都必須跟過(guò)濾器標(biāo)識(shí)符相同。
過(guò)濾器組可以通過(guò)相應(yīng)的 CAN_FM1R 寄存器配置。在配置一個(gè)過(guò)濾器組前,必須通過(guò)清除 CAN_FAR寄存器的 FACT 位,把它設(shè)置為禁用狀態(tài)。通過(guò)設(shè)置 CAN_FS1R 的相應(yīng) FSCx 位,可以配置一個(gè)過(guò)濾器組的位寬,請(qǐng)參見(jiàn)下圖。通過(guò) CAN_FM1R 的 FBMx 位,可以配置對(duì)應(yīng)的屏蔽/標(biāo)識(shí)符寄存器的標(biāo)識(shí)符列表模式或屏蔽位模式。
航順芯片HK32F103CAN的驅(qū)動(dòng)應(yīng)用



我們以常用的一個(gè)32位過(guò)濾器+標(biāo)識(shí)符屏蔽的方式為例進(jìn)行說(shuō)明。
航順芯片HK32F103CAN的驅(qū)動(dòng)應(yīng)用



如上圖,“映像”行中,RTR對(duì)應(yīng)CAN_FiRx的bit1,IDE對(duì)應(yīng)CAN_FiRx的bit2,EXID對(duì)應(yīng)CAN_FiRx的bit3-bit20,STID對(duì)應(yīng)CAN_FiRx的bit21-bit31。結(jié)合前文仲裁段和控制段所述,RTR為0時(shí)表示該CAN幀是數(shù)據(jù)幀,為1時(shí)表示該CAN幀是遠(yuǎn)程幀;IDE為0時(shí)表示該CAN幀是標(biāo)準(zhǔn)格式,為1時(shí)表示該CAN幀是擴(kuò)展格式。標(biāo)準(zhǔn)格式下只用到STID位,擴(kuò)展格式下還會(huì)用到EXID位。在32位過(guò)濾器+標(biāo)識(shí)符屏蔽的方式應(yīng)用中,“ID”行中,即CAN_FiR1寄存器用于設(shè)置CAN報(bào)文的ID、IDE、RTR!捌帘巍毙兄校碈AN_FiR2寄存器用于設(shè)置接收?qǐng)?bào)文過(guò)程中,是否比較ID、IDE、RTR這些對(duì)應(yīng)的各個(gè)位,為0時(shí)表示“不用關(guān)心”,為1時(shí)表示“必須匹配”。以RTR為例,當(dāng)設(shè)置CAN_FiR2的RTR為1“必須匹配”,且CAN_FiR1時(shí)RTR為0時(shí),表示只接收數(shù)據(jù)幀,不接收遠(yuǎn)程幀;而當(dāng)設(shè)置CAN_FiR2的RTR為0時(shí)“不用關(guān)心”,表示無(wú)論是數(shù)據(jù)幀還是遠(yuǎn)程幀,都會(huì)進(jìn)行接收。
下面,我們開(kāi)始說(shuō)明過(guò)濾器的具體設(shè)置。
首先應(yīng)該設(shè)置過(guò)濾器組工作在初始化模式并暫時(shí)禁用過(guò)濾器,如下:
航順芯片HK32F103CAN的驅(qū)動(dòng)應(yīng)用



接著設(shè)置過(guò)濾器的位寬是單個(gè)32位,及工作在標(biāo)識(shí)符屏蔽位模式下,如下:
航順芯片HK32F103CAN的驅(qū)動(dòng)應(yīng)用



假設(shè)我們現(xiàn)在只需要接收兩條CAN標(biāo)準(zhǔn)數(shù)據(jù)幀,且其ID分別為00000000000和00000000001,那么應(yīng)該設(shè)置IDE為0,RTR為0,CAN_FiR1為0,CAN_FiR2為0xFFC00006,如下:
航順芯片HK32F103CAN的驅(qū)動(dòng)應(yīng)用



接著設(shè)置接收到的報(bào)文存放于哪個(gè)FIFO,這里我們存放到FIFO 0,如下:
航順芯片HK32F103CAN的驅(qū)動(dòng)應(yīng)用



最后重新激活過(guò)濾器和設(shè)置過(guò)濾器工作在正常模式:
航順芯片HK32F103CAN的驅(qū)動(dòng)應(yīng)用


編輯:zzy  最后修改時(shí)間:2022-04-15

聯(lián)系方式

0755-82591179

傳真:0755-82591176

郵箱:vicky@yingtexin.net

地址:深圳市龍華區(qū)民治街道民治大道973萬(wàn)眾潤(rùn)豐創(chuàng)業(yè)園A棟2樓A08

Copyright © 2014-2023 穎特新科技有限公司 All Rights Reserved.  粵ICP備14043402號(hào)-4

镇赉县| 拉萨市| 共和县| 鄱阳县| 商河县| 灵山县| 繁昌县| 望奎县| 淅川县| 海盐县| 清水河县| 锡林郭勒盟| 收藏| 册亨县| 天等县| 如东县| 定西市| 洛阳市| 革吉县| 柳林县| 石门县| 宁陕县| 樟树市| 百色市| 仁布县| 故城县| 舟山市| 高碑店市| 永和县| 文登市| 诸暨市| 巴林左旗| 延边| 祁连县| 太康县| 无锡市| 娱乐| 团风县| 长子县| 确山县| 西昌市|