OpenEdv-开源电子网

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

寄存器程序例程CAN总线实验为什么发送ID固定为12????求助

[复制链接]

2

主题

6

帖子

0

精华

新手上路

积分
39
金钱
39
注册时间
2014-3-31
在线时间
2 小时
发表于 2014-8-15 15:48:22 | 显示全部楼层 |阅读模式
5金钱
//过滤器初始化
CAN->FMR|=1<<0; //过滤器组工作在初始化模式
CAN->FA1R&=~(1<<0); //过滤器0不激活
CAN->FS1R|=1<<0; //过滤器位宽为32位.
CAN->FM1R&=~(1<<0); //过滤器0工作在标识符屏蔽位模式
CAN->FFA1R|=0<<0; //过滤器0关联到FIFO0
CAN->sFilterRegister[0].FR1=0X00000000;//32位ID         !!!!????这里过滤器ID全0
CAN->sFilterRegister[0].FR2=0X00000000;//32位MASK    !!!!????这里屏蔽位模式全不屏蔽,都接收
//CAN->sFilterRegister[0].FR2=0XFFE00000;//32位MASK
CAN->FA1R|=1<<0; //激活过滤器0
CAN->FMR&=0<<0; //过滤器组进入正常模式


//can发送一组数据(固定格式:ID为0X12,标准帧,数据帧)
//len:数据长度(最大为8)     
//msg:数据指针,最大为8个字节.
//返回值:0,成功;
// 其他,失败;
u8 Can_Send_Msg(u8* msg,u8 len)
{
u8 mbox;
u16 i=0;         
    mbox=Can_Tx_Msg(0X12,0,0,len,msg);          !!!!???? 这里ID为什么固定为12,不做形参?关键是上面没有屏蔽所有,这里更改ID就接收不了了
while((Can_Tx_Staus(mbox)!=0X07)&&(i<0XFFF))i++;//等待发送结束
if(i>=0XFFF)return 1; //发送失败?
return 0; //发送成功;
}


实验16 CAN收发实验修正后.zip

815.23 KB, 下载次数: 116

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

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-8-15 23:16:41 | 显示全部楼层
这个ID是随意指定的,没有特殊意义.
更改ID应该可以收才对.
有时间我测试下吧.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-7-3 11:32

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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