;CAN邮箱初始化配置
CAN_INIT:
LDP#DP_PF2
LACL MCRB
;配置CAN引脚
OR#0C0H
;IOPC6,IOPC7配置为特殊功能:CANRX,CANTX
SACLMCRB
;CAN位定时器配置
LDP #DP_CAN
SPLK#0040H,MDER;MD2 =1,MBX2为发送方式
SPLK#0FFFFH,CAN_IFR
;清全部CAN中断标志
SPLK#07FFFH,LAM1_H
;设置邮箱2、3屏蔽ID寄存器0
SPLK#0FFFFH,LAM1_L;则ID必须匹配
波特率设定
主要与3个寄存器有关,即SCSR1(系统控制和状态寄存器1)、BCR1(位配置寄存器1)和BCR2(位配置寄存器2)。配置前要确定波特率和晶振频率,当对位定时器进行配置时,CAN控制器必须处于复位模式下,即CCR=1。
SPLK #1000H,MCR;CCR=1改变配置请求
W_CCE:BITGSR,#0Bh;等待改变配置使能
BCNDW_CCE,NTC;当CCE=1时即可配置BCR2、BCR1寄存器
SPLK#01H,BCR2;波特率预分频寄存器
SPLK#0033H,BCR1;波特率设置为1M
LACLMCR
邮箱收发配置
在数据域改变前首先要禁用邮箱,然后置位数据域,改变请求。再设置邮箱ID和信息控制寄存器。若是发送邮箱,则在数据域存放预发送数据,若是接收邮箱,则清空接收缓存。
;写CAN邮箱内容前寄存器设置
LDP#DP_CAN
SPLK #0040H,MDER ;不使能邮箱,邮箱2设为接收方式
SPLK #0103H,MCR;CDR=1,数据区改变请求
;写CAN邮箱内容