打印

CAN 扩展帧

[复制链接]
3505|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
jumingze|  楼主 | 2013-7-16 13:17 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
最近写了个stm32 can的扩展帧收发程序 通过示波器看还是有数据的 但是不知道为什么就是接收不到
          CAN_FilterInitStructure.CAN_FilterNumber = 0;                               
          CAN_FilterInitStructure.CAN_FilterMode = CAN_FilterMode_IdMask;
          CAN_FilterInitStructure.CAN_FilterScale = CAN_FilterScale_32bit;
          CAN_FilterInitStructure.CAN_FilterIdHigh = (u16)(((PowerControl_ID<<3)>>16)&0xffff) ;         
          CAN_FilterInitStructure.CAN_FilterIdLow =  (u16)(PowerControl_ID<<3)|CAN_ID_EXT|CAN_RTR_DATA&0xffff;
          CAN_FilterInitStructure.CAN_FilterMaskIdHigh = 0xFFFF;
          CAN_FilterInitStructure.CAN_FilterMaskIdLow = 0xFFFC;
          CAN_FilterInitStructure.CAN_FilterFIFOAssignment = 0;
          CAN_FilterInitStructure.CAN_FilterActivation = ENABLE;

        TxMessage.ExtId = ExtId;                 
//         TxMessage.StdId = StdId;                  
        TxMessage.RTR=CAN_RTR_DATA;            //数据帧
        TxMessage.IDE=CAN_ID_EXT;                    //标准帧格式
//        TxMessage.IDE=CAN_ID_STD;                    //标准帧格式
        TxMessage.DLC=Count;                                           //帧长度,单位:字节

问下还有什么需要设置的么 感觉没什么问题了啊

沙发
杨爱林林| | 2013-7-16 16:33 | 只看该作者
八成是你设置的位屏蔽不对吧
CAN_FilterIdHigh
CAN_FilterIdLow  
CAN_FilterMaskIdHigh
CAN_FilterMaskIdLow
你先取消过滤的设置  就是把上面四个 全部设为0x0000
估计是没问题的了

使用特权

评论回复
板凳
zeluo| | 2013-7-16 18:45 | 只看该作者
不是很了解这一块   楼主   帮你顶一个   看看别人的意见吧   

使用特权

评论回复
地板
jiaxinhui| | 2013-7-17 07:55 | 只看该作者
楼主可以参考下这个帖子的例程:https://bbs.21ic.com/icview-348466-1-1.html

使用特权

评论回复
5
vacky| | 2013-7-19 15:28 | 只看该作者
楼主 背景交代不清啊 接收发送都是同一个板子STM32吗?贴出的代码 接收过滤器最好先不要设,都置0,这样方便调试,发送程序前面设置正确但还缺少个发送函数,另外最好把发送的数据也填上去。如果接收也是用STM32的话,你是怎么看接收有没有收到数据,是不是用中断接收的?

使用特权

评论回复
6
lawgege| | 2013-10-25 17:17 | 只看该作者
楼主是个懒蛋

使用特权

评论回复
7
wago2008| | 2013-10-30 08:27 | 只看该作者
同意二楼。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

11

帖子

0

粉丝