找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 22354|回復(fù): 40
打印 上一主題 下一主題
收起左側(cè)

STM32 CAN發(fā)送和接收過濾原理 (過程詳細說明,語言生動形象)

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:270390 發(fā)表于 2018-4-14 18:19 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
語言生動形象,讓人一看就懂。
STM32 CAN發(fā)送和接收過濾原理
通過對 CANBUS 協(xié)議的理解 , 我們知道 : CAN 總線上的節(jié)點接收或發(fā)送數(shù)據(jù)都是以幀為單位的 ! ! ! CAN 協(xié)議規(guī)定了好幾種幀類型,但是對于我們應(yīng)用來說,只有數(shù)據(jù)幀和遠程幀可以通過軟件編程來控制 。 ( 其他幾種幀都是由 CAN 控制器硬件實現(xiàn)的 , 我們想管也管不了 ) 。而數(shù)據(jù)幀和遠程幀最大的區(qū)別在于 : 遠程幀沒有數(shù)據(jù)域 。 數(shù)據(jù)幀分為標準數(shù)據(jù)幀和擴展數(shù)據(jù)幀,它們之間最大的區(qū)別在于:標識符 (ID) 長度不同(標準幀為 11 位,擴展幀為 29 位 ) 。為了能更好地理解下面的內(nèi)容,讓我們先來回憶一下標準數(shù)據(jù)幀是什么樣子的:


1 :假如我們只想收到別人發(fā)過來的 ID 為 0x317 的標準數(shù)據(jù)幀:
0X317 二進制位: 011 0001 0111
那么可以這樣設(shè)置 :


種標準數(shù)據(jù)幀了。
以上是 32 位模式下標識符屏蔽模式和標識符列表模式下的設(shè)置方法。
在 16 位模式下,只不過把兩個 32 位寄存器拆成了 4 個 16 位的而已,原理和 32 位模式下是一樣的。就不贅述了。
接收數(shù)據(jù)是通過指向 Can Can Can Can R R R R xMsg xMsg xMsg xMsg 結(jié)構(gòu)體變量的指針傳遞的。直接調(diào)用 CAN_Receive 即可輕松完成。
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;
CanRxMsg 結(jié)構(gòu)與 CanTxMsg 差不多。只是多了一個 FMI 域。

FMI

FMI 設(shè)定為消息將要通過的過濾器索引 , 這些消息存儲于郵箱中 。 該參數(shù)取值范圍 0 到0xFF 。

完整的pdf格式文檔51黑下載地址:
STM32CAN詳解.pdf (252.93 KB, 下載次數(shù): 595)


評分

參與人數(shù) 5黑幣 +121 收起 理由
AAA_MCU + 6 很給力!
夜空之巔 + 30 絕世好帖!
世紀21電源 + 30
xuhe + 5 很不錯,正需要
admin + 50 共享資料的黑幣獎勵!

查看全部評分

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

使用道具 舉報

沙發(fā)
ID:295976 發(fā)表于 2018-4-25 12:52 | 只看該作者
學(xué)習下目前正在學(xué)習can協(xié)議
回復(fù)

使用道具 舉報

板凳
ID:296724 發(fā)表于 2018-6-14 00:53 | 只看該作者
正在學(xué)習,非常實用
回復(fù)

使用道具 舉報

地板
ID:500600 發(fā)表于 2019-3-29 14:58 | 只看該作者
值得學(xué)習,推薦
回復(fù)

使用道具 舉報

5#
ID:524128 發(fā)表于 2019-4-29 00:44 | 只看該作者
的確寫得很生動形象,不錯
回復(fù)

使用道具 舉報

6#
ID:524128 發(fā)表于 2019-5-1 10:13 | 只看該作者
寫得很好,值得學(xué)習
回復(fù)

使用道具 舉報

7#
ID:492919 發(fā)表于 2019-5-1 20:11 | 只看該作者
寫得真好.
好好學(xué)習一下
感謝樓主的分享

      
回復(fù)

使用道具 舉報

8#
ID:136769 發(fā)表于 2019-6-13 15:48 | 只看該作者
好東西,值得學(xué)習!
回復(fù)

使用道具 舉報

9#
ID:561518 發(fā)表于 2019-6-14 16:04 | 只看該作者
汽車電子必備的通訊協(xié)議
回復(fù)

使用道具 舉報

10#
ID:396444 發(fā)表于 2019-6-14 18:33 | 只看該作者
謝謝分享!
回復(fù)

使用道具 舉報

11#
ID:599583 發(fā)表于 2019-8-13 08:36 | 只看該作者
學(xué)習了,謝謝指教
回復(fù)

使用道具 舉報

12#
ID:377677 發(fā)表于 2019-9-6 09:47 | 只看該作者
學(xué)習了
回復(fù)

使用道具 舉報

13#
ID:605886 發(fā)表于 2019-9-7 08:55 | 只看該作者
不錯的資料,謝謝分享
回復(fù)

使用道具 舉報

14#
ID:155842 發(fā)表于 2019-9-10 21:32 | 只看該作者
非常不錯,卡在過濾器幾天了  看了這篇感覺思路都通了。
回復(fù)

使用道具 舉報

15#
ID:124631 發(fā)表于 2019-10-8 10:59 | 只看該作者
以前用的是恒潤的協(xié)議,現(xiàn)在看看能不能自己搞
回復(fù)

使用道具 舉報

16#
ID:83127 發(fā)表于 2019-10-14 13:43 | 只看該作者

學(xué)習下目前正在學(xué)習can協(xié)議
回復(fù)

使用道具 舉報

17#
ID:552218 發(fā)表于 2019-12-14 23:19 | 只看該作者

謝謝分享!
回復(fù)

使用道具 舉報

18#
ID:663600 發(fā)表于 2019-12-15 19:28 | 只看該作者
收藏 正在用的是485 想轉(zhuǎn)為CAN通訊
感謝樓主
回復(fù)

使用道具 舉報

19#
ID:241150 發(fā)表于 2020-2-18 09:25 | 只看該作者
謝謝分享,學(xué)習了
回復(fù)

使用道具 舉報

20#
ID:710761 發(fā)表于 2020-3-18 12:06 | 只看該作者
CAN如何接收?如何過濾?無數(shù)初學(xué)者都倒在這里!算我一位,幸好,到此得到“超度”,沒有比這更易理解的了,感謝作者的用心付出!受教了。
回復(fù)

使用道具 舉報

21#
ID:714887 發(fā)表于 2020-3-24 16:27 | 只看該作者
講得非常好
回復(fù)

使用道具 舉報

22#
ID:719626 發(fā)表于 2020-3-31 16:42 | 只看該作者
這是我看到的最最好的例子
回復(fù)

使用道具 舉報

23#
ID:86450 發(fā)表于 2020-4-10 08:43 | 只看該作者
的確寫得很生動形象,不錯
回復(fù)

使用道具 舉報

24#
ID:728828 發(fā)表于 2020-4-14 11:31 | 只看該作者
很形象,已收藏
回復(fù)

使用道具 舉報

25#
ID:296803 發(fā)表于 2020-4-21 16:08 | 只看該作者
資料不錯,這幾天CAN通信運行過程中莫名其妙停止,一段時間后恢復(fù),不知道啥原因
回復(fù)

使用道具 舉報

26#
ID:752219 發(fā)表于 2020-6-30 11:50 | 只看該作者
請教個問題,這句話什么意思:”接收數(shù)據(jù)是通過指向 Can Can Can Can R R R R xMsg xMsg xMsg xMsg 結(jié)構(gòu)體變量的指針傳遞的”。這里的can can can can  r r r r  xmsg xmsg xmsg xmsg是啥意思
回復(fù)

使用道具 舉報

27#
ID:752219 發(fā)表于 2020-6-30 11:51 | 只看該作者
請教個問題:”接收數(shù)據(jù)是通過指向 Can Can Can Can R R R R xMsg xMsg xMsg xMsg 結(jié)構(gòu)體變量的指針傳遞的”,這句話里面的can can can... xmsg xmsg xmsg xmsg 啥意思
回復(fù)

使用道具 舉報

28#
ID:320751 發(fā)表于 2020-9-6 19:31 | 只看該作者
謝謝分享 感恩付出 謝謝
回復(fù)

使用道具 舉報

29#
ID:588322 發(fā)表于 2020-11-15 16:01 | 只看該作者
學(xué)習下,正在學(xué)習OBD相關(guān)的東西
回復(fù)

使用道具 舉報

30#
ID:509104 發(fā)表于 2021-1-4 18:33 | 只看該作者
學(xué)習下目前正在學(xué)習汽車can通信
回復(fù)

使用道具 舉報

31#
ID:94359 發(fā)表于 2021-1-27 10:01 | 只看該作者
好文章值的學(xué)習
回復(fù)

使用道具 舉報

32#
ID:256945 發(fā)表于 2021-4-26 09:25 | 只看該作者
寫的非常好,要是再加一點代碼和解釋就更好了
回復(fù)

使用道具 舉報

33#
ID:842041 發(fā)表于 2021-8-26 13:46 | 只看該作者
好帖子頂了
回復(fù)

使用道具 舉報

34#
ID:584195 發(fā)表于 2021-8-27 09:16 | 只看該作者
這個寫得太好了!下載下來認真學(xué)習。
回復(fù)

使用道具 舉報

35#
ID:962994 發(fā)表于 2021-8-30 13:46 | 只看該作者
非常清楚,描述也很生動
回復(fù)

使用道具 舉報

36#
ID:595103 發(fā)表于 2021-9-22 13:44 | 只看該作者
講的很細致!!感謝大大分享!
回復(fù)

使用道具 舉報

37#
ID:337280 發(fā)表于 2024-1-19 16:35 | 只看該作者
正在學(xué)習CAN,感謝作者
回復(fù)

使用道具 舉報

38#
ID:18591 發(fā)表于 2024-2-2 09:51 | 只看該作者
非常好,謝謝樓主
回復(fù)

使用道具 舉報

39#
ID:25103 發(fā)表于 2024-2-25 18:05 | 只看該作者

寫得真好.
好好學(xué)習一下
感謝樓主的分享
回復(fù)

使用道具 舉報

40#
ID:1111967 發(fā)表于 2024-6-19 11:33 | 只看該作者
如果我要設(shè)置只接受指定的諾干個ID應(yīng)該要怎么設(shè)置
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表