嵌入式学习小组
直播中

周睫蒙

8年用户 191经验值
私信 关注

c8051f060内置CAN通信程序为什么能将消息对象清0?

void clear_msg_objects(void)
{
     char old_sfrpage=SFRPAGE;
     unsigned char i;
     SFRPAGE = CAN0_PAGE;
     CAN0ADR = IF1CMDMSK;      
     CAN0DATL = 0xFF;            
     for (i=1;i<33;i++)
     {
         CAN0ADR = IF1CMDRQST;     
         CAN0DATL = i;
     }   
     SFRPAGE=old_sfrpage;
}
  请问这段程序为什么能将消息对象清0?是如何工作的?为什么要对IF1命令请求寄存器中的message number重复写1-32呢?

回帖(6)

李翰肃

2020-3-27 09:34:06
为什么每次CAN0ADR = IF1CMDRQST时,设置CAN0DATL = i时的消息对象自动+1?
举报

李秀梅

2020-3-27 09:52:11
云汉达人
自动+1这是这个51芯片的设计,有很多芯片在配置时,都是寄存器地址自动+1的。
举报

孙缅禧

2020-3-27 10:11:12
云汉达人
楼上威武,啥都懂,真乃全才也
举报

唐晓莉

2020-3-27 10:22:32
云汉达人

路过看看
举报

更多回帖

发帖
×
20
完善资料,
赚取积分