📄 帮助&数据接收.txt
字号:
※数据接收
SJA1000的数据接收过程与发送过程有些相似。首先,都是要读取当前的状态寄存器(SR)的内容,缓冲区的首地址仍然是0X10,不过操作对象却不一样了.这里的首地址虽然也是0X10,当时这个是接收缓冲区的首地址.
如果当前只有一个CAN节点,即只有一个SJA1000可以使用的情况下,必须以自接收方式发送一个数据,才能进行以下操作!
1.读状态(SR).
SR.7: 这是总线状态标志位.如果为1,则不能进行数据接收操作。
SR.6: 这是错误状态表示位.如果为1,则可能不能接收,也可能允许
SR.4: 这是接收状态位,为1,则必须等待
SR.0: 如果为1,则表示可以接收,存在有效数据.
--以上条件必须同时满足才能接收数据.
2.写接收缓冲区首地址.一般是:0X10.
接收缓冲区的地址范围是:0X10-0X1C.其地址与发送缓冲区重合,但是他们是不同的寄存器,请注意.
3.按顺序读取数据,请注意你所接收的数据与刚才发送的有什么不同的地方.
4.释放接收缓冲区:CMR=0X04.必须给命令寄存器写0X04才能胜利释放缓冲区.然后可以再读一次状态寄存器,看看CR.0的值有什么变化.
/========================================
命令寄存器的各种值的意义:
CMR=0x01: 普通方式发送一个数据
CMR=0x02: 紧急发送当前数据,如果前依次的发送没有完成,撤消前一次发送.
CMR=0x04: 释放数据接收缓冲接收区
CMR=0X08: 清除数据溢出
CMR=0X10: 以自接收方式发送数据
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -