主題:ETA701 測試程序 共有41168人關注過本帖 |
---|
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; } |
|
單帖管理 | 引用 | 回復 |