標(biāo)題: STM32 CAN發(fā)送和接收過濾原理 (過程詳細(xì)說明,語言生動(dòng)形象) [打印本頁(yè)]

作者: njchenmin    時(shí)間: 2018-4-14 18:19
標(biāo)題: STM32 CAN發(fā)送和接收過濾原理 (過程詳細(xì)說明,語言生動(dòng)形象)
語言生動(dòng)形象,讓人一看就懂。
STM32 CAN發(fā)送和接收過濾原理
通過對(duì) CANBUS 協(xié)議的理解 , 我們知道 : CAN 總線上的節(jié)點(diǎn)接收或發(fā)送數(shù)據(jù)都是以幀為單位的 ! ! ! CAN 協(xié)議規(guī)定了好幾種幀類型,但是對(duì)于我們應(yīng)用來說,只有數(shù)據(jù)幀和遠(yuǎn)程幀可以通過軟件編程來控制 。 ( 其他幾種幀都是由 CAN 控制器硬件實(shí)現(xiàn)的 , 我們想管也管不了 ) 。而數(shù)據(jù)幀和遠(yuǎn)程幀最大的區(qū)別在于 : 遠(yuǎn)程幀沒有數(shù)據(jù)域 。 數(shù)據(jù)幀分為標(biāo)準(zhǔn)數(shù)據(jù)幀和擴(kuò)展數(shù)據(jù)幀,它們之間最大的區(qū)別在于:標(biāo)識(shí)符 (ID) 長(zhǎng)度不同(標(biāo)準(zhǔn)幀為 11 位,擴(kuò)展幀為 29 位 ) 。為了能更好地理解下面的內(nèi)容,讓我們先來回憶一下標(biāo)準(zhǔn)數(shù)據(jù)幀是什么樣子的:


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


種標(biāo)準(zhǔn)數(shù)據(jù)幀了。
以上是 32 位模式下標(biāo)識(shí)符屏蔽模式和標(biāo)識(shí)符列表模式下的設(shè)置方法。
在 16 位模式下,只不過把兩個(gè) 32 位寄存器拆成了 4 個(gè) 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 差不多。只是多了一個(gè) FMI 域。

FMI

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

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



作者: MCreator    時(shí)間: 2018-4-25 12:52
學(xué)習(xí)下目前正在學(xué)習(xí)can協(xié)議
作者: chenjuntang    時(shí)間: 2018-6-14 00:53
正在學(xué)習(xí),非常實(shí)用
作者: tangdongming    時(shí)間: 2019-3-29 14:58
值得學(xué)習(xí),推薦
作者: puresilicon    時(shí)間: 2019-4-29 00:44
的確寫得很生動(dòng)形象,不錯(cuò)
作者: puresilicon    時(shí)間: 2019-5-1 10:13
寫得很好,值得學(xué)習(xí)
作者: ztsos123    時(shí)間: 2019-5-1 20:11
寫得真好.
好好學(xué)習(xí)一下
感謝樓主的分享

      
作者: 00750    時(shí)間: 2019-6-13 15:48
好東西,值得學(xué)習(xí)!
作者: chh543    時(shí)間: 2019-6-14 16:04
汽車電子必備的通訊協(xié)議
作者: yaozhonlei    時(shí)間: 2019-6-14 18:33
謝謝分享!
作者: 大白兔190101    時(shí)間: 2019-8-13 08:36
學(xué)習(xí)了,謝謝指教
作者: 倉(cāng)道與    時(shí)間: 2019-9-6 09:47
學(xué)習(xí)了
作者: 北雁南飛112    時(shí)間: 2019-9-7 08:55
不錯(cuò)的資料,謝謝分享
作者: 離譜    時(shí)間: 2019-9-10 21:32
非常不錯(cuò),卡在過濾器幾天了  看了這篇感覺思路都通了。
作者: eee123    時(shí)間: 2019-10-8 10:59
以前用的是恒潤(rùn)的協(xié)議,現(xiàn)在看看能不能自己搞

作者: Gerage    時(shí)間: 2019-10-14 13:43

學(xué)習(xí)下目前正在學(xué)習(xí)can協(xié)議
作者: Lee_2019    時(shí)間: 2019-12-14 23:19

謝謝分享!
作者: lkjd3k    時(shí)間: 2019-12-15 19:28
收藏 正在用的是485 想轉(zhuǎn)為CAN通訊
感謝樓主
作者: yiran19880808    時(shí)間: 2020-2-18 09:25
謝謝分享,學(xué)習(xí)了
作者: xiaoxudiy    時(shí)間: 2020-3-18 12:06
CAN如何接收?如何過濾?無數(shù)初學(xué)者都倒在這里!算我一位,幸好,到此得到“超度”,沒有比這更易理解的了,感謝作者的用心付出!受教了。
作者: 電子小萌    時(shí)間: 2020-3-24 16:27
講得非常好
作者: shuangxuehuu    時(shí)間: 2020-3-31 16:42
這是我看到的最最好的例子
作者: jjwangxu2008    時(shí)間: 2020-4-10 08:43
的確寫得很生動(dòng)形象,不錯(cuò)
作者: huihui.    時(shí)間: 2020-4-14 11:31
很形象,已收藏
作者: mango_lin    時(shí)間: 2020-4-21 16:08
資料不錯(cuò),這幾天CAN通信運(yùn)行過程中莫名其妙停止,一段時(shí)間后恢復(fù),不知道啥原因
作者: abc2de    時(shí)間: 2020-6-30 11:50
請(qǐng)教個(gè)問題,這句話什么意思:”接收數(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是啥意思
作者: abc2de    時(shí)間: 2020-6-30 11:51
請(qǐng)教個(gè)問題:”接收數(shù)據(jù)是通過指向 Can Can Can Can R R R R xMsg xMsg xMsg xMsg 結(jié)構(gòu)體變量的指針傳遞的”,這句話里面的can can can... xmsg xmsg xmsg xmsg 啥意思
作者: 99312312    時(shí)間: 2020-9-6 19:31
謝謝分享 感恩付出 謝謝
作者: wawq2003    時(shí)間: 2020-11-15 16:01
學(xué)習(xí)下,正在學(xué)習(xí)OBD相關(guān)的東西
作者: lylmirror    時(shí)間: 2021-1-4 18:33
學(xué)習(xí)下目前正在學(xué)習(xí)汽車can通信
作者: useridqq    時(shí)間: 2021-1-27 10:01
好文章值的學(xué)習(xí)
作者: 夜空之巔    時(shí)間: 2021-4-26 09:25
寫的非常好,要是再加一點(diǎn)代碼和解釋就更好了
作者: jokerjoster    時(shí)間: 2021-8-26 13:46
好帖子頂了
作者: zyluglugl    時(shí)間: 2021-8-27 09:16
這個(gè)寫得太好了!下載下來認(rèn)真學(xué)習(xí)。
作者: kyle_2021    時(shí)間: 2021-8-30 13:46
非常清楚,描述也很生動(dòng)
作者: 1714730483    時(shí)間: 2021-9-22 13:44
講的很細(xì)致�。�!感謝大大分享!
作者: 弓長(zhǎng)張    時(shí)間: 2024-1-19 16:35
正在學(xué)習(xí)CAN,感謝作者
作者: jxchen    時(shí)間: 2024-2-2 09:51
非常好,謝謝樓主
作者: huaishang    時(shí)間: 2024-2-25 18:05

寫得真好.
好好學(xué)習(xí)一下
感謝樓主的分享
作者: 內(nèi)卷1234    時(shí)間: 2024-6-19 11:33
如果我要設(shè)置只接受指定的諾干個(gè)ID應(yīng)該要怎么設(shè)置
作者: tangystt    時(shí)間: 2024-6-20 08:48
謝謝分享!收藏





歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1