⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 帮助&数据接收.txt

📁 我自己开发的CAN总线实验软件
💻 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 + -