主题:ETA701 测试程序

  共有19410人关注过本帖    
NONAME
1楼


ETA701 测试程序  发帖心情 Post By:2011-3-23 14:27:00   [只看该作者]

求ETA701关于CAN通讯的测试程序,EM9260板子.邮箱linxiaomuma@126.com

  单帖管理 | 引用 | 回复 回到顶部
zxw
2楼


  发帖心情 Post By:2011-3-23 16:38:00   [只看该作者]

你好!ETA701的测试程序和板上的CAN测试是一样的,只是打开CAN时的序号不一样。板上的CAN的序号为1,ETA701为扩展的第二个CAN,序号是2

  单帖管理 | 引用 | 回复 回到顶部
NONAME
3楼


  发帖心情 Post By:2011-3-25 14:36:00   [只看该作者]

Baud = CAN_TIMING_250K;     // for 250Kbps
CanNo = 2;
         i1 = wcslen( lpCmdLine );
if( i1>0 )
{
wcstombs( str, lpCmdLine, i1 );
//Baud = atoi( str );
sscanf( str, "%d %d", &CanNo, &Baud );
}

printf( "CanNumber: %d Baud: %d\r\n ", CanNo, Baud );

bResult = m_CAN.StartCAN( CanNo, Baud, (BYTE*)Filter, 9 );
if( bResult==FALSE )
{
printf(" can start failed!! \n" );
return -1;
}
    else
      printf(" can start succeed!! \n");


程序运行后提示:
can start failed!! 

不知是什么原因?其他部分都没有更改,CanNo = 1时CAN通讯可以顺利初始化.不知道为什么CanNo = 2时不行?

  单帖管理 | 引用 | 回复 回到顶部
NONAME
4楼


  发帖心情 Post By:2011-3-25 15:27:00   [只看该作者]

经过调试,问题如下:
当程序执行
BOOL CEM9260_CAN::StartCAN( UINT CanNo, UCHAR baud,  BYTE *AcceptanceFilter, BYTE size )
{
TCHAR     szCan[15];
wsprintf(szCan, L"CAN%d:", CanNo);
m_hCAN = CreateFile( szCan, GENERIC_READ|GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, NULL);
if( m_hCAN == INVALID_HANDLE_VALUE)
{
printf( "error!\r\n");
return FALSE;
}
当CanNo=1时,程序没有问题.当CanNo=2时,m_hCAN == INVALID_HANDLE_VALUE.希望贵公司的工程师能够给予帮助.谢谢!

  单帖管理 | 引用 | 回复 回到顶部
x10
5楼


  发帖心情 Post By:2011-3-25 15:47:00   [只看该作者]

是否事先使能了"CAN2:",需执行CAN2Set命令。

  单帖管理 | 引用 | 回复 回到顶部
帅哥哟,离线,有人找我吗?
lqk
6楼 信息 | 搜索 | 邮箱


加好友 发短信
  发帖心情 Post By:2011-3-25 15:49:00   [只看该作者]

请通过telnet登陆到EM9260,执行CAN2SET设置一下,重启系统后再试一下。

  单帖管理 | 引用 | 回复 回到顶部
NONAME
7楼


  发帖心情 Post By:2011-3-25 17:01:00   [只看该作者]

CAN2SET是测试程序吗?还是9260自带的命令?

  单帖管理 | 引用 | 回复 回到顶部
帅哥哟,离线,有人找我吗?
lqk
8楼 信息 | 搜索 | 邮箱


加好友 发短信
  发帖心情 Post By:2011-3-25 21:32:00   [只看该作者]

是EM9260自带的命令,要支持双CAN,需要先设置一下。

  单帖管理 | 引用 | 回复 回到顶部
NONAME
9楼


  发帖心情 Post By:2011-3-26 15:22:00   [只看该作者]

谢谢回复.CAN2已经成功使能.但现在有了新的问题.
原来9260的CAN端口可以与PC成功地收发数据.现在我将9260上的CAN屏蔽线撤下,将PC连接到ETA701的CAN,想用CAN2口与PC通讯.程序其他参数不变,只改变端口号.但是现在PC端与9260都检测不到对方发送的数据.希望能给予解答.

  单帖管理 | 引用 | 回复 回到顶部
zhl
10楼


  发帖心情 Post By:2011-3-27 11:53:00   [只看该作者]

你检查看看接线,ETA701和评估底板CAN1接口的高低位置是反的。

  单帖管理 | 引用 | 回复 回到顶部
NONAME
11楼


  发帖心情 Post By:2011-3-28 15:03:00   [只看该作者]

接线没有错误.故障依旧.
原问题进一步说明如下:
当PC通过CAN2向9260发送数据时,输出结果为
error: 1
error: 2
此错误代码来源于以下子程序,但不知这两个代码的具体意义.请具体解答以下.谢谢!
//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( "error: %d\r\n", ceCAN->ErrorCode );
if( bResult )
{

// 调用回调函数
ceCAN->OnError( );

}
}

return 0;
}

  单帖管理 | 引用 | 回复 回到顶部

返回首页

ETA701 测试程序

用户名:
            验证码: 验证码,看不清楚?请点击刷新验证码
内容: