打印
[STM32F1]

FlexCAN的CAN程序如何移植到BxCAN

[复制链接]
2089|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
panyibin133|  楼主 | 2014-7-8 09:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 panyibin133 于 2014-7-8 19:37 编辑

请问FlexCAN中的这一部分如何移植到Stm32里面,由于移植的程序要兼容原先飞思卡尔的CAN部分,所以使用标准标示符的48位ID字段要完全相同,但是不明白飞思卡尔FlexCAN CANCTRL0字段如何移植到Stm32,TxMessage.StdId=?,TxMessage.ExtId=?,这个ID设置好后如何设置CAN_FilterInitTypeDef才能使得过滤收到用这48位为ID字段的帧谢谢各位高手帮忙解答下最好能给出下代码谢谢!
/* Bit definitions and macros for MCF_CANCTRL0 */
#define MCF_CANCTRL0_BOFFMSK           (0x00000080)
#define MCF_CANCTRL0_ERRMSK            (0x00000040)
#define MCF_CANCTRL0_RXMODE            (0x00000004)
#define MCF_CANCTRL0_TXMODE(x)         (((x)&0x00000003)<<0)
沙发
huangqi412| | 2014-7-8 09:17 | 只看该作者
CAN id是11位和29位吧, 40位没听过。

使用特权

评论回复
板凳
panyibin133|  楼主 | 2014-7-10 11:08 | 只看该作者
huangqi412 发表于 2014-7-8 09:17
CAN id是11位和29位吧, 40位没听过。

29位发送的时候为什么我使用 TxMessage.IDE=CAN_ID_EXT// 使用扩展标识符
但是接收到的RxMessage->StdId打印出来是0呢?TX是发送的ID
TxMessage.StdId=ID[1]
TxMessage.ExtId=ID[1]
TXstd[]10
TXEXtId10
std[0]0
ext[0]10

使用特权

评论回复
地板
zefengx68| | 2014-7-16 22:17 | 只看该作者
这几天我也在做同样的事情,移植,今天已经能用stm32进行CAN 通信了。看你问的,我猜你对CAN协议和STM32的can控制器还不太清楚吧。

使用特权

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

本版积分规则

9

主题

29

帖子

1

粉丝