亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? usbispdlg.cpp

?? 一個(gè)很好的基于USB開發(fā)的VC++資料.一個(gè)很好的基于USB開發(fā)的VC++資料
?? CPP
?? 第 1 頁 / 共 3 頁
字號:

	for(i=0;i<8;i++)
	{
		if(((CButton *)GetDlgItem(IDC_CHECK1+i))->GetCheck())
		{
			switch(i)
			{
			case 0: ProcParam.bSignRead=TRUE; break;
			case 1: ProcParam.bErasure=TRUE; break;
			case 2: ProcParam.bCheckEmp=TRUE; break;
			case 3: ProcParam.bWFlash=TRUE; break;
			case 4: ProcParam.bWEEPROM=TRUE; break;
			case 5: ProcParam.bCheckFlash=TRUE; break;
			case 6: ProcParam.bCheckEEPROM=TRUE; break;
			case 7: ProcParam.bWriteLock=TRUE; break;
			}
		}
		else
		{
			switch(i)
			{
			case 0: ProcParam.bSignRead=FALSE; break;
			case 1: ProcParam.bErasure=FALSE; break;
			case 2: ProcParam.bCheckEmp=FALSE; break;
			case 3: ProcParam.bWFlash=FALSE; break;
			case 4: ProcParam.bWEEPROM=FALSE; break;
			case 5: ProcParam.bCheckFlash=FALSE; break;
			case 6: ProcParam.bCheckEEPROM=FALSE; break;
			case 7: ProcParam.bWriteLock=FALSE; break;
			}
		}
	}

}

void CUSBISPDlg::OnBtnSignRead() 
{
	// TODO: Add your control notification handler code here
	unsigned char ChipSign[3];
	if(!m_Isp.chipInit())
	{
		ShowMsg("下載器初始化出錯(cuò)!");
		return;
	}
	
	if(!m_Isp.chipEntryProgram())
	{
		ShowMsg("下載器初始化出錯(cuò)!");
		return;
	}

	if(!m_Isp.chipSignature(ChipSign))
	{
		ShowMsg("沒檢到器件!");
		return;	
	}

	m_Isp.chipProcOver();
	CString a;
	a.Format("器件特征字:%2.2X %2.2X %2.2X",ChipSign[0],ChipSign[1],ChipSign[2]);
	ShowMsg(a);
}

void CUSBISPDlg::OnBtnReadFlash() 
{
	// TODO: Add your control notification handler code here
	unsigned char ChipSign[3];
	if(!m_Isp.chipInit())
	{
		ShowMsg("下載器初始化出錯(cuò)!");
		return;
	}
	
	if(!m_Isp.chipEntryProgram())
	{
		ShowMsg("下載器初始化出錯(cuò)!");
		return;
	}

	if(!m_Isp.chipSignature(ChipSign))
	{
		ShowMsg("沒檢到器件!");
		return;	
	}

    //讀塊 flashoreeprom=0 flash, flashoreeprom=1 eeprom
	if(!m_Isp.chipPageRead(0,m_pReadBuf,m_ChipType.RomSize))
	{
		ShowMsg("讀器件錯(cuò)誤.");
		return;		
	}

	m_Isp.chipProcOver();
	CString a;
	a.Format("讀器件完成.");
	ShowMsg(a);	
}

void CUSBISPDlg::OnBtnWriteFlash() 
{
	// TODO: Add your control notification handler code here
	//unsigned char m_ISPSEC;
	//unsigned char m_ISPFAL;
	if(!m_Isp.chipInit())
	{
		ShowMsg("下載器初始化出錯(cuò)!");
		m_ISPFAL+=1;
		return;
	}
	
	if(!m_Isp.chipEntryProgram())
	{
		ShowMsg("下載器初始化出錯(cuò)!");
		m_ISPFAL+=1;
		return;
	}

	if(!m_Isp.chipErasure())
	{
		ShowMsg("芯片擦除失敗!");
		m_ISPFAL+=1;
		return;		
	}

    //讀塊 flashoreeprom=0 flash, flashoreeprom=1 eeprom
	if(!m_Isp.chipPageWrite(0,m_pWriteBuf,m_ChipType.page_size,m_nLength))
	{
		ShowMsg("寫器件錯(cuò)誤.");
		m_ISPFAL+=1;
		return;		
	}

	m_Isp.chipProcOver();
	CString a;
	a.Format("寫器件完成.");
	m_ISPSEC+=1;
	ShowMsg(a);	
	a.Format("成功下載%d次,失敗%d次",m_ISPSEC,m_ISPFAL);
	SetDlgItemText(IDC_EDIT2,a);
}

void CUSBISPDlg::OnSelchangeTab(NMHDR* pNMHDR, LRESULT* pResult) 
{
	// TODO: Add your control notification handler code here
	//0,"編程設(shè)定"   1,"FLASH讀緩沖"   2,"FLASH寫緩沖"   3,"EEPROM讀緩沖"
	//4,"EEPROM寫緩沖"  5,"芯片編輯"

	int nTab=((CTabCtrl *)GetDlgItem(IDC_TAB))->GetCurSel();
	
	if(nTab==0)
	{
		GetDlgItem(IDC_BTN_LF_READ)->ShowWindow(SW_HIDE);
		GetDlgItem(IDC_BTN_LF_WRITE)->ShowWindow(SW_HIDE);
		GetDlgItem(IDC_BTN_LF_EXIT)->ShowWindow(SW_HIDE);
		GetDlgItem(IDC_TREE1)->ShowWindow(SW_HIDE);
		GetDlgItem(IDC_EDIT1)->ShowWindow(SW_SHOW);
		GetDlgItem(IDC_MSFLEXGRID1)->ShowWindow(SW_HIDE);		
	}
	if(nTab==1)
	{
		GetDlgItem(IDC_BTN_LF_READ)->ShowWindow(SW_HIDE);
		GetDlgItem(IDC_BTN_LF_WRITE)->ShowWindow(SW_HIDE);
		GetDlgItem(IDC_BTN_LF_EXIT)->ShowWindow(SW_HIDE);
		GetDlgItem(IDC_TREE1)->ShowWindow(SW_HIDE);
		GetDlgItem(IDC_EDIT1)->ShowWindow(SW_HIDE);
		GetDlgItem(IDC_MSFLEXGRID1)->ShowWindow(SW_SHOW);
		ReadBufDisp();
	}
	if(nTab==2)
	{
		GetDlgItem(IDC_BTN_LF_READ)->ShowWindow(SW_HIDE);
		GetDlgItem(IDC_BTN_LF_WRITE)->ShowWindow(SW_HIDE);
		GetDlgItem(IDC_BTN_LF_EXIT)->ShowWindow(SW_HIDE);
		GetDlgItem(IDC_TREE1)->ShowWindow(SW_HIDE);
		GetDlgItem(IDC_EDIT1)->ShowWindow(SW_HIDE);
		GetDlgItem(IDC_MSFLEXGRID1)->ShowWindow(SW_SHOW);		
		WriteBufDisp();
	}
	if(nTab==3)
	{
		GetDlgItem(IDC_BTN_LF_READ)->ShowWindow(SW_HIDE);
		GetDlgItem(IDC_BTN_LF_WRITE)->ShowWindow(SW_HIDE);
		GetDlgItem(IDC_BTN_LF_EXIT)->ShowWindow(SW_HIDE);
		GetDlgItem(IDC_TREE1)->ShowWindow(SW_HIDE);
		GetDlgItem(IDC_EDIT1)->ShowWindow(SW_HIDE);
		GetDlgItem(IDC_MSFLEXGRID1)->ShowWindow(SW_SHOW);
		ReadBufDisp(1);
	}
	if(nTab==4)
	{
		GetDlgItem(IDC_BTN_LF_READ)->ShowWindow(SW_HIDE);
		GetDlgItem(IDC_BTN_LF_WRITE)->ShowWindow(SW_HIDE);
		GetDlgItem(IDC_BTN_LF_EXIT)->ShowWindow(SW_HIDE);
		GetDlgItem(IDC_TREE1)->ShowWindow(SW_HIDE);
		GetDlgItem(IDC_EDIT1)->ShowWindow(SW_HIDE);
		GetDlgItem(IDC_MSFLEXGRID1)->ShowWindow(SW_SHOW);		
		WriteBufDisp(1);
	}
	*pResult = 0;
}

//顯示緩沖內(nèi)容 1->EEPROM 0->Flash
void CUSBISPDlg::ReadBufDisp(unsigned char FORE)
{
	char nCharEach=16; //每行個(gè)數(shù)
	char nCols=nCharEach+2; //列數(shù)
	int nRows=0;
	
	if(FORE==0) nRows=m_ChipType.RomSize/nCharEach+2; //行數(shù)
	else if(FORE==1) nRows=m_ChipType.eepromSize/nCharEach+2; //行數(shù)

	m_DataList.SetScrollBars(3);
	m_DataList.SetCols(nCols);
	m_DataList.SetRows(nRows);

	for(int i=0;i<m_DataList.GetCols();i++) m_DataList.SetColWidth(i,270); //設(shè)置數(shù)據(jù)區(qū)列寬
	m_DataList.SetColWidth(0,700); //設(shè)置第一列寬
	m_DataList.SetColWidth(m_DataList.GetCols()-1,900);
	m_DataList.SetTextMatrix(0,m_DataList.GetCols()-1,"ASCII");
	m_DataList.SetColAlignment(m_DataList.GetCols()-1,3);

	CString a,b;
	for(i=1;i<m_DataList.GetCols()-1;i++) //設(shè)置列屬性
	{
		a.Format("%2.2X",i-1);
		m_DataList.SetTextMatrix(0,i,a);
	}
	for(i=1;i<m_DataList.GetRows();i++) //設(shè)置行屬性
	{
		a.Format("%6.6X",(i-1)*nCharEach);
		m_DataList.SetTextMatrix(i,0,a);
	}

	//為數(shù)據(jù)填寫數(shù)據(jù)
	for(i=0;i<=(FORE==0?m_ChipType.RomSize:m_ChipType.eepromSize);i++)
	{
		if(FORE==0) a.Format("%2.2X",m_pReadBuf[i]);
		else if(FORE==1) a.Format("%2.2X",m_pEReadBuf[i]);
		
		m_DataList.SetTextMatrix(i/nCharEach+1,i%nCharEach+1,a);
		if(i%nCharEach==0)
		{
			m_DataList.SetTextMatrix(i/nCharEach,m_DataList.GetCols()-1,b);
			b="";
		}
		else
		{
			if(FORE==0) 
			{
				if(m_pReadBuf[i-1]>128) a.Format(".");
				else a.Format("%c",m_pReadBuf[i]);
				b+=a;	
			}
			else if(FORE==1) 
			{
				if(m_pEReadBuf[i-1]>128) a.Format(".");
				else a.Format("%c",m_pEReadBuf[i]);
				b+=a;			
			}
		}
	}
	m_DataList.SetTextMatrix(i/nCharEach,m_DataList.GetCols()-1,b);
}

//顯示緩沖內(nèi)容 1->EEPROM 0->Flash
void CUSBISPDlg::WriteBufDisp(unsigned char FORE)
{
	char nCharEach=16; //每行個(gè)數(shù)
	char nCols=nCharEach+2; //列數(shù)
	int nRows=0;
	
	if(FORE==0) nRows=m_ChipType.RomSize/nCharEach+2; //行數(shù)
	else if(FORE==1) nRows=m_ChipType.eepromSize/nCharEach+2; //行數(shù)

	m_DataList.SetScrollBars(3);
	m_DataList.SetCols(nCols);
	m_DataList.SetRows(nRows);

	for(int i=0;i<m_DataList.GetCols();i++) m_DataList.SetColWidth(i,270); //設(shè)置數(shù)據(jù)區(qū)列寬
	m_DataList.SetColWidth(0,700); //設(shè)置第一列寬
	m_DataList.SetColWidth(m_DataList.GetCols()-1,900);
	m_DataList.SetTextMatrix(0,m_DataList.GetCols()-1,"ASCII");
	m_DataList.SetColAlignment(m_DataList.GetCols()-1,3);

	CString a,b;
	for(i=1;i<m_DataList.GetCols()-1;i++) //設(shè)置列屬性
	{
		a.Format("%2.2X",i-1);
		m_DataList.SetTextMatrix(0,i,a);
	}
	for(i=1;i<m_DataList.GetRows();i++) //設(shè)置行屬性
	{
		a.Format("%6.6X",(i-1)*nCharEach);
		m_DataList.SetTextMatrix(i,0,a);
	}

	//為數(shù)據(jù)填寫數(shù)據(jù)
	for(i=0;i<=(FORE==0?m_ChipType.RomSize:m_ChipType.eepromSize);i++)
	{
		if(FORE==0) a.Format("%2.2X",m_pWriteBuf[i]);
		else if(FORE==1) a.Format("%2.2X",m_pEWriteBuf[i]);

		m_DataList.SetTextMatrix(i/nCharEach+1,i%nCharEach+1,a);
		if(i%16==0 && i!=0)
		{
			m_DataList.SetTextMatrix(i/nCharEach,m_DataList.GetCols()-1,b);
			b="";
		}
		else
		{
			if(FORE==0) 
			{
				if(m_pWriteBuf[i-1]>128) a.Format(".");
				else a.Format("%c",m_pWriteBuf[i]);
				b+=a;
			}
			else
			{
				if(m_pEWriteBuf[i-1]>128) a.Format(".");
				else a.Format("%c",m_pEWriteBuf[i]);
				b+=a;			
			}
		}
	}
	m_DataList.SetTextMatrix(i/nCharEach,m_DataList.GetCols()-1,b);
}

void CUSBISPDlg::OnBtnFfileOpen() 
{
	// TODO: Add your control notification handler code here
	static CFileDialog m_FileDlg(TRUE,"bin",NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,"Intel Hex文件(*.hex)|*.hex|二進(jìn)制文件(*.bin)|*.bin|");
	if(m_FileDlg.DoModal()==IDOK)
	{
		m_strOpenFile=m_FileDlg.GetFileName();
		m_strOpenFileExt=m_FileDlg.GetFileExt();
		m_strFilePath=m_FileDlg.GetPathName();
		m_strOpenFileExt.MakeUpper();
		m_strEditFileName=m_strFilePath;

		szLastFile=m_strFilePath;
		char tch[255];
		for(char i=0;i<szLastFile.GetLength();i++)
		{
			tch[i]=szLastFile.GetAt(i);
		}
		tch[i]='\0';
		m_ado.OpenTable("sys");
		m_ado.PutFilds("LastFile",tch);
		m_ado.Update();
		m_ado.CloseTable("sys");		
		OpenHexFile();
		SetDlgItemText(IDC_STATIC_FILE,szLastFile);
	}	
}

int CUSBISPDlg::GetMinLength(BYTE *pBuf, int nLength)
{//計(jì)算緩沖中最小數(shù)據(jù)塊的長度,跳過0xFF
	int m_nDataLength=0;
	int n;
	for(n=nLength-1;n>=0;n--)
	{
		if(pBuf[n]!=0xff)
		{
			if(n==0)
			 return m_nDataLength=1;
			break;
		}
	}
	if(n==0)
		return m_nDataLength=0;
	n++;
	if(n>m_ChipType.RomSize*1024)
		return m_nDataLength=m_ChipType.RomSize*1024;
	return m_nDataLength=n;
}

BOOL CUSBISPDlg::OpenHexFile(unsigned char FORE)
{
	if(m_strOpenFile!="")
	{
		if(m_fileOpen.Open(m_strOpenFile,CFile::shareCompat|CFile::modeRead,NULL))
		{
			int nFileSize;
			nFileSize=m_fileOpen.GetLength();
			if(m_strOpenFileExt=="HEX")
			{
				char* pFileBuf=(char*)GlobalAlloc(GMEM_FIXED,nFileSize+1);
				memset(pFileBuf,0,nFileSize+1);
				m_fileOpen.Read(pFileBuf,nFileSize);
				if(FORE==Flash)
				{
					HexToBin(pFileBuf,m_pWriteBuf);
					m_nLength=GetMinLength(m_pWriteBuf,0x10000);
				}
				else if(FORE==EEPROM)
				{
					HexToBin(pFileBuf,m_pEWriteBuf);
					m_nELength=GetMinLength(m_pEWriteBuf,0x10000);				
				}
				GlobalFree(pFileBuf);
			}
			else
			{
				if(nFileSize>0x10000)  nFileSize=0x10000;
				if(FORE==Flash)
				{
					memset(m_pWriteBuf,0xff,0x10000);
					m_fileOpen.Read(m_pWriteBuf,nFileSize);
				}
				else if(FORE==EEPROM)
				{
					memset(m_pEWriteBuf,0xff,0x10000);
					m_fileOpen.Read(m_pEWriteBuf,nFileSize);				
				}
			}
			//m_editBuf1.SetData(m_Pro.m_pWriteBuf,0x10000); //這里是做什么用的?
			m_fileOpen.Close();
			CString strFileSize;
			strFileSize.Format("[%d字節(jié)].",nFileSize);
			CString b;
			CString a;
			b.Format("%d字節(jié)",nFileSize);
			a.Format("·讀入文件 %s",m_strEditFileName); 
			ShowMsg(a);
			if(FORE==Flash) a.Format("·文件大小 %s 待下載數(shù)據(jù) [%d]byte.",strFileSize,m_nLength); 

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲综合偷拍欧美一区色| 国产精品18久久久久久vr| 精品一区二区久久久| 久久不见久久见免费视频7| 欧美日韩综合在线免费观看| 九色综合狠狠综合久久| 天天色图综合网| 精品国产91洋老外米糕| 91香蕉视频mp4| 六月丁香婷婷色狠狠久久| **性色生活片久久毛片| 国产日韩欧美不卡| 麻豆久久久久久久| 欧美综合一区二区三区| 国产在线不卡一区| 国产毛片精品视频| 国产精品成人免费精品自在线观看 | 成人激情小说乱人伦| 成人黄色小视频在线观看| 成人av在线一区二区三区| caoporn国产精品| 欧美性xxxxx极品少妇| 欧美老肥妇做.爰bbww视频| 日韩午夜小视频| 久久精品在线免费观看| 亚洲欧洲av在线| 亚洲成a人片综合在线| 日韩 欧美一区二区三区| 激情综合五月天| av激情综合网| 欧美日韩大陆在线| 97久久超碰国产精品| 欧美四级电影在线观看| 99国产精品久| 欧美偷拍一区二区| 日本免费在线视频不卡一不卡二| 亚洲欧洲日产国码二区| 亚洲第一成年网| 国产在线精品不卡| 99久久久精品免费观看国产蜜| 色94色欧美sute亚洲13| 日韩精品中午字幕| 亚洲婷婷在线视频| 免费的国产精品| 在线中文字幕一区| 日韩一区二区高清| 成人欧美一区二区三区1314| 亚洲资源中文字幕| 国产伦精品一区二区三区免费| 99久久综合色| 91精品在线免费| 亚洲成a人片在线不卡一二三区| 久久精品99国产精品日本| 国产综合色在线| 成人国产在线观看| 国产一区二区三区免费播放| 国产精品一线二线三线| 国产一区二区免费视频| 欧美在线视频全部完| 国产亚洲综合在线| 亚洲va中文字幕| 丁香另类激情小说| 免费观看一级欧美片| 大胆欧美人体老妇| 欧美一级久久久| 亚洲视频一二三| 精品一区二区av| 欧美日韩在线播| 国产精品不卡在线| 国产一区二区精品久久91| 欧美日韩一二区| 国产精品超碰97尤物18| 国产一区免费电影| 欧美一区二区三区在线观看| |精品福利一区二区三区| 国产原创一区二区| 日韩一区二区三区四区| 亚洲一二三四久久| 精品国产亚洲在线| 国内精品久久久久影院一蜜桃| 日韩精品一卡二卡三卡四卡无卡| 国产成都精品91一区二区三| 欧美一级欧美三级| 亚洲一二三区视频在线观看| 从欧美一区二区三区| 精品国产凹凸成av人导航| 天堂在线一区二区| 欧美日韩免费电影| 亚洲久本草在线中文字幕| 国产.欧美.日韩| 日韩精品一区二区三区在线播放| 亚洲成人激情综合网| 欧美午夜寂寞影院| 一区二区三区四区激情 | 成人精品高清在线| 国产欧美精品一区aⅴ影院| 日本vs亚洲vs韩国一区三区 | 中文字幕日本不卡| 日韩一区二区视频| 日韩成人一级大片| 精品国产一区二区三区四区四| 国产精品2024| 色综合网色综合| 亚洲人成影院在线观看| 色婷婷综合久久久中文一区二区| 亚洲色图欧洲色图| 欧美精品第1页| 国产成人精品aa毛片| 亚洲精品乱码久久久久久日本蜜臀| 亚洲视频一区二区免费在线观看| 99久久亚洲一区二区三区青草| 国产欧美一二三区| 成人午夜电影网站| 亚洲欧美在线视频| 色婷婷综合久久久| 亚洲一区二区三区四区的| 欧美午夜精品久久久久久超碰 | 亚洲精品一二三| 欧洲亚洲国产日韩| 日韩高清在线观看| 日韩免费观看高清完整版| 黄色资源网久久资源365| 久久久久成人黄色影片| www.亚洲激情.com| 一区二区三区在线免费观看 | 亚洲国产sm捆绑调教视频 | 欧美日韩精品系列| 麻豆传媒一区二区三区| 久久久久久久久久久久久夜| 成人小视频免费在线观看| 亚洲欧美日韩系列| 欧美日韩成人综合在线一区二区| 免费高清不卡av| 欧美一级在线观看| 一区二区视频在线看| 色婷婷一区二区三区四区| 午夜电影一区二区| www国产亚洲精品久久麻豆| 成人黄页毛片网站| 午夜精品久久久久久久99樱桃| 精品国产亚洲一区二区三区在线观看| 国产成人午夜片在线观看高清观看| 日本韩国精品一区二区在线观看| 成人小视频免费观看| 欧美男女性生活在线直播观看 | 肉丝袜脚交视频一区二区| 中文字幕一区二区不卡| 欧美国产在线观看| 久久久夜色精品亚洲| 国产欧美一区二区三区在线老狼| 日韩小视频在线观看专区| 日韩一区二区在线观看| 亚洲精品一区二区在线观看| 1024精品合集| 丁香亚洲综合激情啪啪综合| 精品成人一区二区| 久久99这里只有精品| 国产成人免费网站| 日本道免费精品一区二区三区| 日韩精品五月天| 亚洲视频图片小说| 久久新电视剧免费观看| 欧美性高清videossexo| 国产99精品视频| 青青草视频一区| 一区二区三区四区精品在线视频| 久久综合久久综合久久综合| 欧美三级视频在线观看 | 91久久久免费一区二区| 国内外成人在线视频| 午夜欧美视频在线观看| 亚洲欧美视频在线观看| 国产亚洲一区二区三区在线观看 | 久久新电视剧免费观看| 欧美日韩国产影片| 欧美日韩一区二区三区免费看| 日韩免费观看高清完整版在线观看| 色又黄又爽网站www久久| 国产老女人精品毛片久久| 亚洲国产精品久久一线不卡| 国产精品水嫩水嫩| 欧美videos中文字幕| 欧美视频一区在线| aaa亚洲精品一二三区| 国模冰冰炮一区二区| 日韩av中文在线观看| 一区二区三区鲁丝不卡| 国产精品乱码人人做人人爱| 欧美成人高清电影在线| 欧美日韩一区中文字幕| 91在线精品一区二区| 不卡一区在线观看| 国产成人精品免费网站| 激情文学综合丁香| 91精品欧美福利在线观看| 日韩精品视频网站| 日韩免费高清电影| 日本亚洲免费观看| 中文字幕人成不卡一区| voyeur盗摄精品|