CH365技術話題

你好,在編寫應用程序時,CH365DLL.LIB文件怎么使用呢?為什么在“組建”的時候,會出現(xiàn)如下的錯誤呢?

Linking... test program.obj : error LNK2001: unresolved external symbol _Read_data test program.obj : error LNK2001: unresolved external symbol _Write_data Debug/test program.exe : fatal error LNK1120: 2 unresolved externals 執(zhí)行 link.exe 時出錯.

能否提供一般的初始化CH365的源程序呢?


沒有正確的加入庫或頭文件等 要例子代碼的話,留個郵箱,發(fā)編譯好的 DEBUG365 工程給你。


在開發(fā)應用程序的時候,編譯沒有問題,就是“組建”的時候,發(fā)現(xiàn)調用“子程序”錯誤 ,如:讀寫存儲器的函數(shù)。。。。。注:尚未安裝CH365驅動程序。

郵箱:個人信息保護,已隱藏

謝謝!


有的函數(shù)調用,要有硬件、安裝驅動才可以。


Ch365ReadMemByte(&mMemBase->mCh365MemPort[0x00],&mByte); //從0x00H單元中讀出數(shù)據(jù),保存在mByte中

Ch365WriteMemByte(&mMemBase->mCh365MemPort[0x00],0x02); //在0x00H單元中寫入數(shù)據(jù)0x02

如果要對以上兩個函數(shù)進行聲明的話,應該怎么聲明呢 ?函數(shù)類型,及變量類型是什么呢?


在 CH365DLL.H 中寫得很清楚

BOOL WINAPI CH365ReadMemDword( // 從存儲器讀取一個雙字 PVOID iAddr, // 指定存儲器的地址,虛擬地址 PULONG oDword ); // 指向一個雙字單元,用于保存讀取的雙字數(shù)據(jù)

BOOL WINAPI CH365WriteMemByte( // 向存儲器寫入一個字節(jié) PVOID iAddr, // 指定存儲器的地址,虛擬地址 UCHAR iByte ); // 待寫入的字節(jié)數(shù)據(jù)


編譯好的 DEBUG365工程 已發(fā)您的郵箱 個人信息保護,已隱藏 請查收 可以用VC 5.0, VC6.0 等打開。


你好,應用程序在編譯時,會出現(xiàn)函數(shù)類型不明確的警告,被系統(tǒng)默認為整型,如下: warning C4013: 'Ch365WriteMemByte' undefined; assuming extern returning int warning C4013: 'Ch365ReadMemByte' undefined; assuming extern returning int

存儲器讀寫函數(shù)應該怎么聲明呢?嘗試了前面您回復的聲明,執(zhí)行結果還是一樣的。

謝謝!


我嘗試編譯和組建您發(fā)出來的“DEBUG365”文件的代碼,在尚未安裝驅動程序的前提下,可以組建通過;; 這是我的源程序代碼,您看看有什么地方需要修改?謝謝。。 #include #include #include #include #include #include"CH365DLL.H" //如果在DOS下使用,請使用DOS庫 //#define DIN_PORT 0xef //數(shù)據(jù)輸入端口

// UCHAR Read_data(); //讀(上傳)1個字節(jié)數(shù)據(jù)的子程序

// void Write_data(char data); //寫(下傳)1個字節(jié)數(shù)據(jù)的子程序和主程序

void main( ) { UCHAR mByte,in_data,out_data;

mPCH365_MEM_REG mMemBase; //存儲器基址 //若要使用DLL則需要先加載 if(LoadLibrary("CH365DLL.DLL")==NULL) return; //加載DLL失敗

if(CH365OpenDevice(TRUE,FALSE)==INVALID_HANDLE_VALUE) return; //打開CH365設備

CH365SetA15_A8(0x7f); //開始數(shù)據(jù)采集信號

CH365GetMemBaseAddr(&mMemBase); //獲取系統(tǒng)為CH365自動分配的I/O基址 in_data=0x02;

CH365SetA15_A8(0xdf); //設置A13為低電平,片選雙端口RAM Ch365WriteMemByte(&mMemBase->mCh365MemPort[0x00],0x02); //在0x00H單元中寫入數(shù)據(jù)0x02H CH365SetA15_A8(0xff);

CH365SetA15_A8(0xdf); //設置A13為低電平,片選雙端口RAM Ch365ReadMemByte(&mMemBase->mCh365MemPort[0x00],&mByte); //從0x00H單元中讀出數(shù)據(jù),保存在mByte中 CH365SetA15_A8(0xff);

out_data=mByte; printf("mByte = %c\n",mByte); CH365CloseDevice();

if(out_data==in_data) printf("test correct!\n"); else printf("test wrong!\n"); }


你好,問題已經(jīng)解決,是大小寫的問題!! 另外,請問,從存儲器讀出的數(shù)據(jù)單元“mByte”中的數(shù)據(jù)結果是什么類型的數(shù)據(jù)呢?是什么進制的呢?


你好,請問用“Ch365WriteMemByte”\“Ch365ReadMemByte”這兩個函數(shù)時,操作的是CH365內部的存儲器空間?還是可對片外的擴展存儲器操作的??

在試驗時,我把片外存儲器的片選信號A13去掉,怎么還是能夠順利地存取數(shù)據(jù)呢?


一般情況下,CH365 的本地存儲器被映射到計算機的存儲器空間,讀寫本地存儲器是在存儲器空 間進行的


只有登錄才能回復,可以選擇微信賬號登錄

国产91精品新入口,国产成人综合网在线播放,九热这里只有精品,本道在线观看,美女视频a美女视频,韩国美女激情视频,日本美女pvp视频