请选择 进入手机版 | 继续访问电脑版

你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

标准ID=0X80的接收中断问题,目前是无法执行中断回调中的功能

[复制链接]
mike_cow 提问时间:2024-6-12 13:28 / 未解决

只接收标准ID=0X80的数据帧,标准数据帧={0x29, 0xF2, 0x01, 0x00, 0x01},匹配好,PB14/15置 低;

一,过滤器配置

void CAN_Filter_Init(void) { CAN_FilterTypeDef sFilterConfig;

sFilterConfig.FilterBank = 0; / 过滤器组0 / sFilterConfig.FilterMode = CAN_FILTERMODE_IDLIST; / 屏蔽位模�? / sFilterConfig.FilterScale = CAN_FILTERSCALE_16BIT; / 32位�??/

sFilterConfig.FilterIdHigh =0x80; / 要过滤的ID高位 / sFilterConfig.FilterIdLow = 0xFFFF; sFilterConfig.FilterMaskIdHigh = 0xFFFF; / 过滤器高16位每位必须匹�? / sFilterConfig.FilterMaskIdLow = 0xFFFF; / 过滤器低16位每位必须匹�? / sFilterConfig.FilterFIFOAssignment = CAN_RX_FIFO0; / 过滤器被关联到FIFO 0 / sFilterConfig.FilterActivation = CAN_FILTER_ENABLE; / 使能过滤�? / sFilterConfig.SlaveStartFilterBank = 14;

if( HAL_CAN_ConfigFilter(&hcan, &sFilterConfig)!=HAL_OK) {Error_Handler(); } if( HAL_CAN_Start(&hcan)!=HAL_OK) { Error_Handler(); }

if( HAL_CAN_ActivateNotification(&hcan, CAN_IT_RX_FIFO0_MSG_PENDING)!=HAL_OK) { Error_Handler(); }

}

二,中断回调函数

void HAL_CAN_RxFifo0MsgPendingCallback(CAN_HandleTypeDef *hcan) { uint32_t i; uint8_t aData[5],RxData[5];

if(hcan->Instance==CAN1) { if( HAL_CAN_GetRxMessage(&hcan, CAN_RX_FIFO0, &RxHeader, aData)==HAL_OK ) { for(i = 0; i<5; i++) { RxData[i] = aData[i]; } }

if((RxData[0]==0x29) && (RxData[1]=0xF2) && (RxData[2]==0x01) && (RxData[3]==0x00) && (RxData[4]==0x01)) {

HAL_GPIO_WritePin(GPIOB,GPIO_PIN_14,RESET); HAL_GPIO_WritePin(GPIOB,GPIO_PIN_15,RESET);

}

} }

收藏 评论2 发布时间:2024-6-12 13:28

举报

2个回答
shenxiaolin_mai 回答时间:2024-6-12 15:25:31

按道理来说你可以看看滤波设置,还有就是如果你设置其他ID就可以进中断了?如果是这样那就是滤波设置有问题。

xmshao 回答时间:2024-6-16 15:25:38

你现在是16位列表模式,且使用标准ID,假设只有ID为0x123才能通过过滤。

你可以这样配置试试:

sFilterConfig.FilterIdHigh = (0x123 << 5);

sFilterConfig.FilterIdLow = (0x123 << 5);

sFilterConfig.FilterMaskIdHigh = (0x123 << 5);

sFilterConfig.FilterMaskIdLow = (0x123 << 5);

当然你可以只留下上面4行中的任意一行,其它换成不会出现的ID,

比方(0X7FF<<5)也可以。

你现在配置应该是有问题的,即使ID是0x80,那你赋值时应该

写成(0x80<<5).

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版