STM32 Cubmx CAN配置

芯片:APMF072(与STM32F072全部适配)

在用Cubmx配置并生成代码后,需要另外手写CAN 滤波设置,否则无法使用。

    //CAn filter config
	CANFilterConfig();
	
	//start can
	HAL_CAN_Start(&hcan);
	
	//enable FIFO 0 message pending interrupt
	HAL_CAN_ActivateNotification(&hcan,CAN_IT_RX_FIFO0_MSG_PENDING);

 

void CANFilterConfig(void)
{
  CAN_FilterTypeDef sFilterConfig;
  
	sFilterConfig.FilterBank = 0;           
  sFilterConfig.FilterMode = CAN_FILTERMODE_IDMASK; 
  sFilterConfig.FilterScale = CAN_FILTERSCALE_32BIT;
	
	
  sFilterConfig.FilterIdHigh =0x0000;
  sFilterConfig.FilterIdLow = 0x0000;
  sFilterConfig.FilterMaskIdHigh = 0x0000;
  sFilterConfig.FilterMaskIdLow = 0x0000;
  sFilterConfig.FilterFIFOAssignment =CAN_RX_FIFO0;
  sFilterConfig.FilterActivation = ENABLE;
  sFilterConfig.SlaveStartFilterBank = 14;
  HAL_CAN_ConfigFilter(&hcan, &sFilterConfig);
}

CAN滤波设置可以参考STM32CUBEMX系列——CAN通讯的配置_渔泽的博客-CSDN博客_stm32cubemx配置can

总结来讲:

1.CAN滤波设置主要设置滤波模式和位宽

滤波模式分为列表模式和掩码模式,位宽分为16位和32位,通过以上设置可以搭配出四种组合。

2.掩码模式的思路:对于一系列希望接收的ID,计算出这些ID的相同的部分,设置屏蔽码来保证只检查上述相同部分对应的位,并与验证码做对比,验证码可以是系统接收的任何一个ID。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值