OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4126|回复: 2

在CAN通讯中,修改标识符后不能通过

[复制链接]

1

主题

3

帖子

0

精华

新手上路

积分
34
金钱
34
注册时间
2014-11-8
在线时间
1 小时
发表于 2014-11-8 09:32:32 | 显示全部楼层 |阅读模式
5金钱

我现在用的是STM32F103单片机,使用两个单片机CAN模块相互连接通讯。采用的正常模式、标准标识符、FIFO0消息挂号中断使能。程序如下:
现在的问题是:目前程序发送和接收邮箱的标识符TxMessage.stdid和RxMessage.stdid为0x0001时,
能正常接收和发送数据;但只要把发送和接收邮箱的标识符TxMessage.stdid和RxMessage.stdid;由0x0001改为其他数,如0x0002就不能正常接收了,请高手指教。

[mw_shl_code=c,true]void CAN_send(void) { if(!KEY1()) { CanTxMsg TxMessage; TxMessage.StdId=0x0001; // ?è?¨±ê×?±ê??·??¨11???© TxMessage.IDE=CAN_ID_STD; // ????±ê??·????é±ê×?±ê??·? TxMessage.RTR=CAN_RTR_DATA; // ?????????????à?????????? //TxMessage.DLC=1; // ·?????????????8?? //TxMessage.Data[0]=0x32; // ?????????? TxMessage.DLC=2; TxMessage.Data[0]=0xCA; TxMessage.Data[1]=0xFE; CAN_Transmit(CAN1,&TxMessage); //????·??????? LED1_ON; //°???S1?ó??LED??DS1?á?????? } } void USB_LP_CAN1_RX0_IRQHandler(void) { CanRxMsg RxMessage; CAN_Receive(CAN1, CAN_FIFO0, &RxMessage); if((RxMessage.StdId==0x0001) && (RxMessage.IDE==CAN_ID_STD) && (RxMessage.DLC==2) &&((RxMessage.Data[0]<<8|RxMessage.Data[1])==0xCAFE))//(RxMessage.Data[0]==0x32)) { test = 1; //???????? } else { test =0; //?????§°? } CAN_ClearITPendingBit(CAN1,CAN_IT_FMP0); }[/mw_shl_code]

 

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-11-8 14:28:13 | 显示全部楼层
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

8

主题

193

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
303
金钱
303
注册时间
2012-12-19
在线时间
16 小时
发表于 2014-11-11 20:49:53 | 显示全部楼层
你的接收滤波器设置了吗,这个也要修改。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-29 14:36

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表