我已向貴司申請了樣片,可我無法下載網(wǎng)上的資料。 如果為了等待貴司批準(zhǔn)權(quán)限就要擔(dān)誤兩天時間,相信那是每一個工程師都不愿做的。 方便是一種優(yōu)勢,如果不能提供,那又如何去競爭。 時間是金錢,如果浪費,又如何把握時機。。。。
經(jīng)過商量,回答如下,主要是希望您能理解。 首先,絕大多數(shù)的通用資料網(wǎng)上都可以直接下載,只有特殊資料才需要額外開放權(quán)限。 芯片的DataSheet使用說明、應(yīng)用參考、參考電路都可以直接下載,能夠滿足于一般應(yīng)用。 其次,大多數(shù)申請額外下載權(quán)限都可以在當(dāng)天處理掉,當(dāng)天未處理的通常是因為申請者未提供客戶信息或者 那些技術(shù)資料可能只向購買相關(guān)產(chǎn)品方案的用戶開放。 再次,各個客戶的情況不同,雖然我們的技術(shù)資料是免費提供的,但是并非所有的資料和方案都可以 完全開放給我們的任何客戶(沒辦法,免費方案總是優(yōu)先服務(wù)于老客戶)。 最后,這個貼子會轉(zhuǎn)給我們的銷售人員,我們還應(yīng)該努力提高響應(yīng)速度,簡化手續(xù),節(jié)約雙方的時間。
進(jìn)入編程階段,沒有動態(tài)函數(shù)說明文件應(yīng)如何操作?
不理解您的意思,動態(tài)函數(shù)是指什么? 如果是指DLL動態(tài)鏈接庫,那么可以在CH372評估資料中有簡單說明,CH372EVT.ZIP 另外,在CH375DLL.H頭文件中也有每個API的簡單說明,在CH372驅(qū)動程序包中有。CH372DRV.ZIP 如果是指CH375的文件級操作API,那么可以參考CH375評估板資料中的說明 CH375EVT.ZIP 網(wǎng)上這些資料都可以直接下載。
我在編輯時出現(xiàn)下面的錯誤提示,請問何原因? 1)xp操作系統(tǒng) 2)軟件c++6.0 Deleting intermediate files and output files for project 'ElectricityTest - Win32 Debug'. --------------------Configuration: ElectricityTest - Win32 Debug-------------------- Compiling resources... Compiling... StdAfx.cpp Compiling... ChildFrm.cpp ElectricityTest.cpp ElectricityTestDoc.cpp ElectricityTestView.cpp Loading.cpp MainFrm.cpp Generating Code... Linking... Loading.obj : error LNK2001: unresolved external symbol _CH375ReadData@12 Loading.obj : error LNK2001: unresolved external symbol _CH375WriteData@12 Loading.obj : error LNK2001: unresolved external symbol _CH375OpenDevice@4 Debug/ElectricityTest.exe : fatal error LNK1120: 3 unresolved externals Error executing link.exe.
ElectricityTest.exe - 4 error(s), 0 warning(s)
代碼如下: // Loading.cpp : implementation file //
#include "stdafx.h" #include "ElectricityTest.h" #include "Loading.h" #include "CH375DLL.H"
#ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif
///////////////////////////////////////////////////////////////////////////// // CLoading dialog
typedef unsigned char UINT8; typedef unsigned short UINT16; typedef unsigned long UINTc32;
ULONG CH375DBG_Index = 0; /* CH372/CH375設(shè)備序號 */ BOOL CH375DBG_Opened = FALSE; /* CH372/CH375設(shè)備被打開標(biāo)志 */
typedef struct _USB_DOWN_PACKET { /* 下傳的數(shù)據(jù)包結(jié)構(gòu),用于命令/寫數(shù)據(jù) */ UINT8 mCommand; /* 命令碼,見下面的定義 */ UINT8 mCommandNot; /* 命令碼的反碼,用于校驗下傳數(shù)據(jù)包 */ union { UINT8 mByte[4]; /* 通用參數(shù) */ UINT16 mWord[2]; /* 通用參數(shù),低字節(jié)在前,Little-Endian */ UINTc32 mDword; /* 通用參數(shù),低字節(jié)在前,Little-Endian */ void *mAddress; /* 讀寫操作的起始地址,低字節(jié)在前,Little-Endian */ } u; UINT8 mLength; /* 下面的緩沖區(qū)的長度,讀寫操作的字節(jié)數(shù) */ UINT8 mBuffer[8]; /* 數(shù)據(jù)緩沖區(qū) */ } USB_DOWN_PKT;
typedef struct _USB_UP_PACKET { /* 上傳的數(shù)據(jù)包結(jié)構(gòu),用于狀態(tài)/讀數(shù)據(jù) */ UINT8 mStatus; /* 狀態(tài)碼,見下面的定義 */ UINT8 mCommandNot; /* 命令碼的反碼,用于校驗上傳數(shù)據(jù)包 */ UINT8 mReserved[4]; UINT8 mLength; /* 下面的緩沖區(qū)的長度,讀操作的字節(jié)數(shù) */ UINT8 mBuffer[8]; /* 數(shù)據(jù)緩沖區(qū) */ } USB_UP_PKT;
CLoading::CLoading(CWnd* pParent /*=NULL*/) : CDialog(CLoading::IDD, pParent) { //{{AFX_DATA_INIT(CLoading) //}}AFX_DATA_INIT }
void CLoading::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CLoading) DDX_Control(pDX, IDC_PROG, m_prog); //}}AFX_DATA_MAP }
BEGIN_MESSAGE_MAP(CLoading, CDialog) //{{AFX_MSG_MAP(CLoading) ON_WM_TIMER() ON_BN_CLICKED(IDC_BUT_RETRY, OnButRetry) //}}AFX_MSG_MAP END_MESSAGE_MAP()
///////////////////////////////////////////////////////////////////////////// // CLoading message handlers
BOOL CLoading::OnInitDialog() { CDialog::OnInitDialog(); // TODO: Add extra initialization here SetTimer(1,1000,NULL); return TRUE; // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE }
/* 命令碼定義,按位說明 位7為命令類型: 0=實現(xiàn)特定功能, 1=存儲器和SFR讀寫 對于"實現(xiàn)特定功能"命令類型: 位6-位0為定義的具體命令碼, 命令碼為00H-7FH, 其中: 00H-3FH為通用標(biāo)準(zhǔn)命令, 40H-7FH為與應(yīng)用系統(tǒng)有關(guān)的特定命令 目前版本定義了以下通用標(biāo)準(zhǔn)命令: 00H: 獲取調(diào)試固件程序的版本,并取消未完成的上傳數(shù)據(jù)塊 10H: 獲取當(dāng)前應(yīng)用系統(tǒng)的版本和說明字符串 對于"存儲器和SFR讀寫"命令類型: 位6為數(shù)據(jù)傳輸方向: 0=讀操作/上傳, 1=寫操作/下傳 位5-位4為數(shù)據(jù)讀寫寬度: 00=以字節(jié)為單位/8位, 01=以字為單位/16位, 10=以雙字為單位/32位, 11=以位為單位/1位 位3-位2為產(chǎn)品類型碼:00=電流測試設(shè)備 位1-位0為存儲器空間: 00=存取SFR, 01=存取內(nèi)部RAM, 10=存取外部RAM, 11=存取程序ROM 例如: 命令碼80H為讀SFR, 命令碼83H為讀程序ROM, 命令碼C1H為寫內(nèi)部RAM, 命令碼C2H為寫外部RAM 狀態(tài)碼定義: 00H為操作成功, 080H為命令不支持, 0FFH為未定義的錯誤 */ #define USB_GET_TYPE 0X00 #define USB_GET_DATA 0X02
#define ERR_SUCCESS 0x00 #define ERR_UNSUPPORT 0x80 #define ERR_UNDEFINED 0xFF
void CLoading::OnTimer(UINT nIDEvent) { // TODO: Add your message handler code here and/or call default KillTimer(1); USB_DOWN_PKT downdata; USB_UP_PKT updata; ULONG len; CH375DBG_Opened=FALSE; if(CH375DBG_Opened==FALSE) { CH375DBG_Opened=CH375OpenDevice(CH375DBG_Index)!= INVALID_HANDLE_VALUE; if(CH375DBG_Opened==FALSE) { AfxMessageBox("打開設(shè)備出錯!請檢查設(shè)置是否連線."); return; } } downdata.mCommand =USB_GET_TYPE; downdata.mCommandNot =~USB_GET_TYPE; downdata.u .mAddress =0; downdata.mLength =0; len = mOFFSET( USB_DOWN_PKT, mBuffer ); if(CH375WriteData(CH375DBG_Index,&downdata,&len)) { len = sizeof( USB_UP_PKT ); if (CH375ReadData(CH375DBG_Index, &updata, &len ) )// 讀取應(yīng)答塊 { if (updata.mStatus == ERR_SUCCESS && updata.mCommandNot == downdata.mCommandNot && updata.mLength >= 1 ) // 操作成功,并且返回數(shù)據(jù) { if( updata.mBuffer[0]==0x00) // 返回設(shè)備種類號 {//加入代碼
} else { AfxMessageBox("00x02: 不同類型的設(shè)備!"); return; } } else { AfxMessageBox("00x01: 讀取外部設(shè)備出錯!"); return; } } } CDialog::OnTimer(nIDEvent); }
void CLoading::OnButRetry() { // TODO: Add your control notification handler code here CLoading::OnTimer(1); }
參考CH372評估板中的PDF說明,在VC工程屬性的LINK中加入 CH375DLL.LIB
非常感謝!問題解決!