关于接收数据,设置的顺序如下。
1 首先设置 验收滤波屏蔽寄存器 RXM0SIDH,L = 0XFF;
2 R0缓冲区有两个验收滤波器,RXF0SIDH,L RXF1SIDH,L
//========================================================================
RXB1CTRL - 接收缓冲器1 控制寄存器( 地址: 70h)
BFPCTRL - RXNBF 引脚控制和状态寄存器 ( 地址: 0Ch)
RXBNSIDH - 接收缓冲器N 标准标识符高位( 地址: 61h, 71h)
RXBNSIDL - 接收缓冲器N 标准标识符低位( 地址: 62h, 72h)
RXBNEID8 - 接收缓冲器N 扩展标识符中间位( 地址: 63h, 73h) //因不用扩展帧,用不到这2个reg;
RXBNEID0 - 接收缓冲器N 扩展标识符低位( 地址: 64h, 74h)
RXBNDLC - 接收缓冲器N 数据长度码( 地址: 65h, 75h)
RXBNDM - 接收缓冲器N 数据字段字节M ( 地址: 66h-6Dh, 76h-7Dh)
RXFNSIDH - 验收滤波寄存器N 标准标识符的高位( 地址: 00h, 04h, 08h, 10h, 14h, 18h)
验收滤波器及屏蔽寄存器用来确定报文集成缓冲器中的报文是否应被载入接收缓冲器(见图4-3)。一旦MAB
接收到有效报文,报文中的标识符字段将与过滤寄存器中的值进行比较。如果两者匹配,该报文将被载入相应
的接收缓冲器。滤波屏蔽寄存器用来确定滤波器对标识符中的哪些位进行校验。
<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
RXFNSIDL - 验收滤波寄存器N 标准标识符的低位( 地址: 01h, 05h, 09h, 11h, 15h, 19h)
RXFNEID8 - 验收滤波器N 扩展标识符的高位 ( 地址: 02h, 06h, 0Ah, 12h, 16h, 1Ah)//因不用扩展帧,用不到这2个reg;
RXFNEID0 - 验收滤波寄存器N 扩展标识符的低位 ( 地址: 03h, 07h, 0Bh, 13h, 17h, 1Bh)
RXMNSIDH - 验收滤波屏蔽寄存器N 标准标识符的高位( 地址: 20h, 24h)
RXMNSIDL - 验收滤波屏蔽寄存器N 标准标识符低位( 地址: 21h, 25h)
RXMNEID8 - 验收滤波屏蔽寄存器N 扩展标识码的高位( 地址: 22h, 26h)//因不用扩展帧,用不到这2个reg
RXMNEID0 - 接受屏蔽寄存器N 扩展标识符的低位字节( 地址: 23h, 27h)
CANINTE - I 中断使能寄存器( 地址: 2Bh)
bit 7 MERRE: 报文错误中断使能
1 = 报文接收或发送错误中断
0 = 中断禁止
bit 6 WAKIE:唤醒中断使能
1 = CAN 总线活动中断
0 = 中断禁止
1 = EFLG 错误状态变化中断
0 = 中断禁止
bit 4 TX2IE:发送缓冲器2 空中断使能
1 = TXB2 为空时中断
0 = 中断禁止
bit 3 TX1IE:发送缓冲器1 空中断使能
1 = TXB1 为空时中断
0 = 中断禁止
bit 2 TX0IE:发送缓冲器0 空中断使能
1 = TXB0 为空时中断
0 = 中断禁止
bit 1 RX1IE:接收缓冲器1 满中断使能
1 = RXB1 装入报文时中断
0 = 中断禁止
bit 0 RX0IE: 接收缓冲器0 满中断使能
1 = RXB0 装入报文时中断
0 = 中断禁止
CANINTF - 中断标志寄存器( 地址: 2Ch)
bit 7 MERRF:报文出错中断标志
1 = 有等待处理的中断(此位应由MCU 清除以使中断复位)
0 = 无等待处理的中断
bit 6 WAKIF:唤醒中断标志
1 = 有等待处理的中断(此位应由MCU 清除以使中断复位)
0 = 无等待处理的中断
bit 5 ERRIF:出错中断标志( EFLG 寄存器中包含了多种引起出错中断的状态标志位
1 = 有等待处理的中断(此位应由MCU 清除以使中断复位)
0 = 无等待处理的中断
bit 4 TX2IF:发送缓冲器2 空中断标志
1 = 有等待处理的中断(此位应由MCU 清除以使中断复位)
0 = 无等待处理的中断
bit 3 TX1IF:发送缓冲器1 空中断标志
1 = 有等待处理的中断(此位应由MCU 清除以使中断复位)
0 = 无等待处理的中断
bit 2 TX0IF: 发送缓冲器0 空中断标志
1 = 有等待处理的中断(此位应由MCU 清除以使中断复位)
0 = 无等待处理的中断
bit 1 RX1IF:接收缓冲器1 满中断标志
1 = 有等待处理的中断(此位应由MCU 清除以使中断复位)
0 = 无等待处理的中断
bit 0 RX0IF:接收缓冲器0 满中断标志
1 = 有等待处理的中断(此位应由MCU 清除以使中断复位)
0 = 无等待处理的中断
文章评论(0条评论)
登录后参与讨论