|
在H系列中傳統(tǒng)的CAN升級為FDCAN,但是還是提供了classic模式,但是參數(shù)多了很多,某原子的教程也有問題,在某原子的基礎(chǔ)上改動(dòng)一下:
主要三點(diǎn):
1、 hfdcan1.Init.StdFiltersNbr = 1;
hfdcan1.Init.ExtFiltersNbr = 1;這里是數(shù)量而不是編號,不能為0,為0就不濾波了,實(shí)際用幾個(gè)設(shè)幾個(gè)。
2、要打開全局濾波開關(guān)
if(HAL_FDCAN_ConfigGlobalFilter(fdCan,FDCAN_REJECT, FDCAN_REJECT, ENABLE, ENABLE)!=HAL_OK )
{
_Error_Handler(__FILE__, __LINE__);
}
3、如果兩個(gè)FDCAN都初始化的話,第二個(gè)FDCAN的消息RAM偏移地址一定要設(shè)置,不然也會(huì)無法濾波,導(dǎo)致收不到消息
hfdcan2.Init.MessageRAMOffset = hfdcan1.msgRam.EndAddress-SRAMCAN_BASE;
|
評分
-
查看全部評分
|