安臣 发表于 2015-11-23 10:16
有人。 只是canopen 没怎么玩过 帮顶。
can中断 无法接受吗?不管是远程帧 还是 数据帧接受就有中 ...
远程帧我测试的没有中断,不知道怎么设置,应该和数据帧不一样。
本帖最后由 abclsl 于 2015-11-23 20:17 编辑
sFilterConfig.FilterMode = CAN_FILTERMODE_IDMASK;
sFilterConfig.FilterScale = CAN_FILTERSCALE_32BIT;
sFilterConfig.FilterIdHigh = 0x0000;
sFilterConfig.FilterIdLow = 0x0000;
sFilterConfig.FilterMaskIdHigh = 0x0000;
sFilterConfig.FilterMaskIdLow = 0x0000;
滤波器配置
can的配置,但是如果有数据确实能进入中断,但是没有数据就进不了中断,所以遥控帧接收不了,请高手指教,急! 会不会我的芯片买假了
abclsl 发表于 2015-11-23 13:57
接收规则,我仔细看了没有发现怎么实现,请说明白一点谢谢!!!
把初始化函数贴出来看看。
远程帧的作用是向其他节点请求数据,设置时要注意ID是目标报文的ID,验收滤波也要相应设置。
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;
zhoupxa 发表于 2015-11-24 09:03
远程帧的作用是向其他节点请求数据,设置时要注意ID是目标报文的ID,验收滤波也要相应设置。 ...
能具体点吗,“验收滤波也要相应的设置” 怎么实现?现在滤波没有作用,接收处理是通过接收中断,软件处理遥控帧。
用标准帧和扩展帧先测试收发没有问题,再测试远程帧,远程帧测试时,可以先测试发送,让接收器接收。
安 发表于 2015-11-24 16:37
用标准帧和扩展帧先测试收发没有问题,再测试远程帧,远程帧测试时,可以先测试发送,让接收器接收。 ...
已经测过,标准和扩展都测试过,远程帧发送也测试过。就是接收不到,是不是stm32一个硬bug?
安 发表于 2015-11-24 16:37
用标准帧和扩展帧先测试收发没有问题,再测试远程帧,远程帧测试时,可以先测试发送,让接收器接收。 ...
标准或者扩展只要带数据都是没有问题的,都能接收到!