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

stm32f4105 can2接收远程帧问题

[复制链接]
abclsl 提问时间:2015-11-20 09:45 /
阅读主题, 点击返回1楼
收藏 1 评论28 发布时间:2015-11-20 09:45
28个回答
abclsl 回答时间:2015-11-24 13:02:33
lyp05401 发表于 2015-11-24 08:50
把初始化函数贴出来看看。

  hcan2.pTxMsg = &TxMessage;
  hcan2.pRxMsg = &RxMessage;
  hcan2.Instance = CAN2;
  hcan2.Init.Mode = CAN_MODE_NORMAL;
  hcan2.Init.SJW = CAN_SJW_1TQ;
  hcan2.Init.BS1 = CAN_BS1_3TQ;
  hcan2.Init.BS2 = CAN_BS2_2TQ;
  hcan2.Init.TTCM = DISABLE;
  hcan2.Init.ABOM = DISABLE;
  hcan2.Init.AWUM = DISABLE;
  hcan2.Init.NART = DISABLE;
  hcan2.Init.RFLM = DISABLE;
  hcan2.Init.TXFP = DISABLE;

    hcan2.Init.Prescaler =7;//6;
abclsl 回答时间:2015-11-24 13:12:13
zhoupxa 发表于 2015-11-24 09:03
远程帧的作用是向其他节点请求数据,设置时要注意ID是目标报文的ID,验收滤波也要相应设置。 ...

能具体点吗,“验收滤波也要相应的设置” 怎么实现?现在滤波没有作用,接收处理是通过接收中断,软件处理遥控帧。
废鱼 回答时间:2015-11-24 16:37:50
用标准帧和扩展帧先测试收发没有问题,再测试远程帧,远程帧测试时,可以先测试发送,让接收器接收。
abclsl 回答时间:2015-11-25 08:59:20
安 发表于 2015-11-24 16:37
用标准帧和扩展帧先测试收发没有问题,再测试远程帧,远程帧测试时,可以先测试发送,让接收器接收。 ...

已经测过,标准和扩展都测试过,远程帧发送也测试过。就是接收不到,是不是stm32一个硬bug?
abclsl 回答时间:2015-11-25 09:00:12
安 发表于 2015-11-24 16:37
用标准帧和扩展帧先测试收发没有问题,再测试远程帧,远程帧测试时,可以先测试发送,让接收器接收。 ...

标准或者扩展只要带数据都是没有问题的,都能接收到!
yanhaijian 回答时间:2015-11-25 09:58:28
我怎么就没用过远程帧。
abclsl 回答时间:2015-11-25 10:07:39
你可以帮我试试
abclsl 回答时间:2015-11-25 10:13:21
yanhaijian 发表于 2015-11-25 09:58
我怎么就没用过远程帧。

我也是刚用,所以才发现,感觉是bug
abclsl 回答时间:2015-11-26 16:49:13
ok了
安臣 回答时间:2015-11-26 17:07:04

应该不是bug
安臣 回答时间:2015-11-26 17:08:22
  1. /* CAN init function */
  2. void MX_CAN_Init(void)
  3. {

  4.   hcan.Instance = CAN;
  5.   hcan.Init.Prescaler = 16;
  6.   hcan.Init.Mode = CAN_MODE_NORMAL;
  7.   hcan.Init.SJW = CAN_SJW_1TQ;
  8.   hcan.Init.BS1 = CAN_BS1_9TQ;
  9.   hcan.Init.BS2 = CAN_BS2_2TQ;
  10.   hcan.Init.TTCM = DISABLE;
  11.   hcan.Init.ABOM = DISABLE;
  12.   hcan.Init.AWUM = DISABLE;
  13.   hcan.Init.NART = ENABLE;
  14.   hcan.Init.RFLM = DISABLE;
  15.   hcan.Init.TXFP = DISABLE;
  16.   HAL_CAN_Init(&hcan);

  17. }
复制代码
安臣 回答时间:2015-11-26 17:08:59
  1.         FilterConfig.FilterIdHigh         = ((ext_id<<3) >>16) &0xffff;
  2.         FilterConfig.FilterIdLow          = (uint16_t)(ext_id<<3) | CAN_ID_EXT | CAN_RTR_DATA;
  3.         FilterConfig.FilterMaskIdHigh     = 0xfff8;
  4.         FilterConfig.FilterMaskIdLow      = 0x07ff;
  5.         FilterConfig.FilterFIFOAssignment = 0x00;
  6.         FilterConfig.FilterNumber         = 0x00;
  7.         FilterConfig.FilterMode           = CAN_FILTERMODE_IDMASK;
  8.         FilterConfig.FilterScale          = CAN_FILTERSCALE_32BIT;
  9.         FilterConfig.FilterActivation     = ENABLE;
  10.         hcan.Instance = CAN;
  11.         HAL_CAN_ConfigFilter(&hcan, &FilterConfig);
复制代码
abclsl 回答时间:2015-11-29 11:55:30

谢谢回答,配置问题
abclsl 回答时间:2015-11-29 11:55:49

谢谢回答,配置问题:
12

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版