大家先去看乙個暫存器 can_tixr(x=0~2) 傳送郵箱標識暫存器
標準幀在 31~21 位 共11位 stid[10:0]
擴充套件幀在
20~3 位 共29位 exid[17:0]+stid[10:0]
0~2 位分別為 txrq ,rtr ,ide
uint16_t can_id = 0x0101
uint32_t excan_id= 0x10001
所以設定標位幀id過濾應該這樣設:
can_filterinitstructure.can_filteridhigh = can_id<<5;
can_filterinitstructure.can_filteridlow = 0;
can_filterinitstructure.can_filtermaskidhigh = 0xffff;
can_filterinitstructure.can_filtermaskidlow = 0xfffc; //rtr 可以為資料幀也可以遠幀
擴充套件幀id過濾應該這樣設:
can_filterinitstructure.can_filteridhigh = (uint16_t)(excan_id>>(29-16)); //取高16位
can_filterinitstructure.can_filteridlow = (uint16_t)(excan_id<<3)|can_id_ext;
can_filterinitstructure.can_filtermaskidhigh = 0xffff;
can_filterinitstructure.can_filtermaskidlow = 0xfffc; //rtr 可以為資料幀也可以遠幀
可以這樣 can_filterinitstructure.can_filtermaskidlow = 0xfffc&(~can_id_ext); g
t
CAN 擴充套件幀和標準幀的適用範圍
剛接觸can不久,對很多can相關的知識不了解,就難以進行靈活的運用。今天弄懂了can的標準幀和擴充套件幀的使用場合,故此做一下筆記。首先,得知道為什麼會有這兩種不同的幀。其實原因和ipv4和ipv6的區別一樣,ipv6的出現,是為了解決ipv4的位址不夠用的尷尬。同樣,can的擴充套件幀,是為了解...
I幀 B幀 p幀 IDR幀的區別
idr instantaneous decoding refresh 即時解碼重新整理。i幀 幀內編碼幀幀。i和idr幀都是使用幀內 的。它們都是同乙個東西而已,在編碼和解碼中為了方便,要首個i幀和其他i幀區別開,所以才把第乙個首個i幀叫idr,這樣就方便控制編碼和解碼流程。idr幀的作用是立刻重新...
I 幀,B幀,P幀,IDR幀的區別
i幀 幀內編碼幀 i幀特點 1.它是乙個全幀壓縮編碼幀。它將全幀影象資訊進行jpeg壓縮編碼及傳輸 2.解碼時僅用i幀的資料就可重構完整影象 3.i幀描述了影象背景和運動主體的詳情 4.i幀不需要參考其他畫面而生成 5.i幀是p幀和b幀的參考幀 其質量直接影響到同組中以後各幀的質量 6.i幀是幀組g...