打印
[CAN-bus/DeviceNet]

不理解这段程序为什么能实现将所有消息对象清零,关于CAN

[复制链接]
1646|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
milan111|  楼主 | 2008-4-19 00:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
void clear_msg_objects (void) //将所有消息清零
{    
    uchar i;
       SFRPAGE = CAN0_PAGE;
    CAN0ADR = IF1CMDMSK;       
    CAN0DATL = 0xFF;            
    for (i=1;i<33;i++)
      {
        CAN0ADR = IF1CMDRQST;     
        CAN0DATL = i;
      }   
}

相关帖子

沙发
lnskngdc| | 2008-4-21 13:05 | 只看该作者

你用的是C8051f040吧?

你用的是C8051f040吧?

CAN0ADR = IF1CMDRQST; 

CAN0DATL = i;

这句话就是通过IFx向消息对象清零的最后命令,一旦IF1CMDRQST被写入1~32的数字,相应的消息对象数据都被IFx对应的寄存器改写了。建议详细读一下datasheet,多看几遍,会有帮助的,这个是面向对象的思维方式,跟老51不同。

使用特权

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

本版积分规则

42

主题

62

帖子

0

粉丝