[CAN-bus/DeviceNet] 请问用中止发送来进行单步发送是怎么使用的啊?

[复制链接]
3178|3
 楼主| pricechen 发表于 2007-4-11 09:07 | 显示全部楼层 |阅读模式
1)资料上说:<br />当单个SJA1000芯片发送CAN信息帧时,会无法收到总线上其他节点的确认信息,从而判断本节点本次发送过程失败,导致自动进入“重发”模式,发送错误计数器值增加;如果值超过限值,SJA1000芯片将发生总线离线,进入复位状<br />态.因此每次发送完成后,建议使用中止发送来进行单步发送<br /><br />中止发送来进行单步发送&nbsp;是不是当发送中断后,在中断里,对CMR.AT位,置位,来停止重发啊??<br /><br />2)&lt&ltSJA1000&nbsp;独立的CAN&nbsp;控制器应用指南&gt&gt和&lt&ltsja1000手册&gt&gt中的&quot;中止发送位&quot;部分,和流程图,我看得不是很明白.<br />&nbsp;&nbsp;上面说&nbsp;一个报文在发送缓冲器中等待发送,发送缓冲器会锁定,如果这时候要求发送一个更紧急报文,置位命令寄存器里中止发送位.<br />&nbsp;&nbsp;请问&nbsp;置位命令寄存器里中止发送位后,会发生什么情况啊?资料和流程图里都没有写.<br />&nbsp;&nbsp;a)CMR.AT置位后,发送缓冲器是不是会被释放,原先的报文会自动取消吗?<br />&nbsp;&nbsp;b)置位后,马上可以写入更紧急的报文吗?需要进行发送缓存器检查?是马上可以检查,还是要延时一段时间才对发送缓存器进行检查.<br /><br />谢谢,,<br /><br />
zlgCAN 发表于 2007-4-11 09:22 | 显示全部楼层

同时置位即单次发送。

  
 楼主| pricechen 发表于 2007-4-11 09:44 | 显示全部楼层

老大,能不能详细点

<br />是不是可以理解为,在主程序里在发送缓存里面放好数据后,发送请求位置位,然后马上对中止发送位置位??
shalilien 发表于 2007-4-11 16:18 | 显示全部楼层

如果我只想重发5次就好那该怎么办呢??

  
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

8

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部