回复帖子:(STUDENT(202.120.*.*))谢谢!最近调试后发现...

用户名:   *您没有注册?
密码:   *忘记论坛密码?    标题采用“回复:XXX....”
验证码 点击获取验证码
主题标题:  *不得超过 200 个汉字
当前心情
上一页 发帖表情 下一页
内容
  

主题最新回顾(发布时间:2011-4-12 17:26:00)
--  作者:zhl(125.70.*.*)
--  
这表明是SJA1000芯片发生了错误,并产生相应的passive 和bus-off中断错误。一般来说数据发送错误过多,就会导致节点的总线关闭bus off。

主题最新回顾(发布时间:2011-4-12 10:24:00)
--  作者:STUDENT(202.120.*.*)
--  
谢谢!最近调试后发现,一旦用CAN发送数据,程序就接连输出错误代码1,2。那错误类型就应该是CANCONTROLLER_ERROR_PASSIVE和CANCONTROLLER_BUS_OFF。请问什么原因会导致这两种错误?

主题最新回顾(发布时间:2011-4-6 21:40:00)
--  作者:x10(125.70.*.*)
--  
目前定义了bit0 - bit6如下:
#define CANCONTROLLER_WARNING_LIMIT_REACHED (1<<0) // 1
#define CANCONTROLLER_ERROR_PASSIVE (1<<1) // 2
#define CANCONTROLLER_BUS_OFF (1<<2) // 4
#define CANCONTROLLER_OVERRUN (1<<3) // 8
#define CANCONTROLLER_BUS_ERROR (1<<4) // 16
#define CANCONTROLLER_ABITRATION_LOST (1<<5) // 32
#define RING_BUFFER_FULL (1<<6) // 64

主题最新回顾(发布时间:2011-4-6 14:46:00)
--  作者:STUDENT(202.120.*.*)
--  EM9260 CAN通讯错误代码含义?
在贵公司提供的CANTEST示例程序中,EM9260_CAN.cpp中有如下代码

//CAN错误监测函数
DWORD CEM9260_CAN::GetErrorThreadFunc( LPVOID lparam )
{
CEM9260_CAN *ceCAN = (CEM9260_CAN*)lparam;

BOOL  bResult;

while( 1 )
{

if( WaitForSingleObject( ceCAN->m_hErrorCloseEvent, 0 )==WAIT_OBJECT_0 )
{
break;
}

WaitForSingleObject( ceCAN->m_hErrEvent, INFINITE );


bResult = CAN_GetError( ceCAN->m_hCAN, &ceCAN->ErrorCode );
printf( "%d\r\n", ceCAN->ErrorCode );

if( bResult )
{
// 调用回调函数
ceCAN->OnError( );
}
}

return 0;
}

我在调试过程中发现该段程序输出错误代码,分别是1,2,3。请问这3个错误代码有什么含义?通讯的什么错误会导致这三种错误的产生?谢谢了!