⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 if101ctrl.cpp

📁 evc++ 测试CMMB驱动
💻 CPP
字号:
// IF101Ctrl.cpp : implementation file
//

#include "stdafx.h"
#include "IF101DriverTest.h"
#include "IF101Ctrl.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CIF101Ctrl dialog


CIF101Ctrl::CIF101Ctrl(CWnd* pParent /*=NULL*/)
	: CDialog(CIF101Ctrl::IDD, pParent)
{
	//{{AFX_DATA_INIT(CIF101Ctrl)
	m_IIC_writeval = 0;
	m_IIC_readval = 0;
	m_Spi_readval = 0;
	m_Spi_writeval = 0;
	m_IIC_writeaddr = 0;
	m_IIC_readaddr = 0;
	m_Spi_read_cmd = 0;
	m_Spi_write_cmd = 0;
	//}}AFX_DATA_INIT
}


void CIF101Ctrl::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CIF101Ctrl)
	DDX_Text(pDX, IDC_IIC_WRITE_VAL, m_IIC_writeval);
	DDX_Text(pDX, IDC_IIC_READ_VAL, m_IIC_readval);
	DDX_Text(pDX, IDC_SPI_READ_VAL, m_Spi_readval);
	DDX_Text(pDX, IDC_SPI_WRITE_VAL, m_Spi_writeval);
	DDX_Text(pDX, IDC_IIC_WRITE_ADDR, m_IIC_writeaddr);
	DDX_Text(pDX, IDC_IIC_READ_ADDR, m_IIC_readaddr);
	DDX_Text(pDX, IDC_SPI_READ_CMD, m_Spi_read_cmd);
	DDX_Text(pDX, IDC_SPI_WRITE_CMD, m_Spi_write_cmd);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CIF101Ctrl, CDialog)
	//{{AFX_MSG_MAP(CIF101Ctrl)
	ON_BN_CLICKED(IDC_IIC_WRITE, OnIicWrite)
	ON_BN_CLICKED(IDC_IIC_READ, OnIicRead)
	ON_BN_CLICKED(IDC_SPI_WRITE, OnSpiWrite)
	ON_BN_CLICKED(IDC_SPI_READ, OnSpiRead)
	ON_WM_CLOSE()
	ON_BN_CLICKED(DOWNLOADFIRWARM, OnDOWNLOADFIRWARM)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CIF101Ctrl message handlers

#define IIC_WRITE_BYTE 0x80
#define IIC_READ_BYTE  0x81

#define SPI_WRITE_REG  0x82
#define SPI_READ_REG  0x83

void CIF101Ctrl::OnIicRead() 
{
	// TODO: Add your control notification handler code here
	TCHAR szMsg[1000];
	UINT16 dwInBuffer[2] = {0};
	UINT16 dwOutBuffer[2] = {0};
	DWORD dwReturn = 0;

	// Open the existing file.

	this->UpdateData(TRUE);
	dwInBuffer[0] = m_IIC_readaddr;
	if(!DeviceIoControl(hINNO,IIC_READ_BYTE,dwInBuffer,2,dwOutBuffer,2,&dwReturn,NULL))
	{
		wsprintf (szMsg, TEXT("Could not read file from INO1:"));
		return;
	}

	RETAILMSG(1,(TEXT("Read IIC addr 0x%x  val 0x%x dwReturn = %d\r\n"),dwInBuffer[0],dwOutBuffer[0],dwReturn));
	m_IIC_readval = dwOutBuffer[0]&0xFF;
	this->UpdateData(FALSE);

}

void CIF101Ctrl::OnIicWrite() 
{
	// TODO: Add your control notification handler code here
	TCHAR szMsg[1000];

	UINT16 dwInBuffer[2] = {0};
	UINT16 dwOutBuffer[2] = {0};
	DWORD dwReturn = 0;

	this->UpdateData(TRUE);
	dwInBuffer[0] = m_IIC_writeaddr;
	dwInBuffer[1] = m_IIC_writeval;
	if(!DeviceIoControl(hINNO,IIC_WRITE_BYTE,dwInBuffer,2,dwOutBuffer,2,&dwReturn,NULL))
	{
		wsprintf (szMsg, TEXT("Could not write file INO1:"));
		return;
	}

	RETAILMSG(1,(TEXT("Write IIC addr 0x%x  val 0x%x\r\n"),dwInBuffer[0],dwInBuffer[1]));
	m_IIC_writeval = dwInBuffer[1]&0xFF;
	
	this->UpdateData(FALSE);

}

void CIF101Ctrl::OnSpiWrite() 
{
	// TODO: Add your control notification handler code here
	TCHAR szMsg[1000];

	UINT16 dwInBuffer[2] = {0};
	UINT16 dwOutBuffer[2] = {0};
	DWORD dwReturn = 0;
	
	this->UpdateData(TRUE);
	dwInBuffer[0] = m_Spi_write_cmd;
	if(!DeviceIoControl(hINNO,SPI_WRITE_REG,dwInBuffer,1,dwOutBuffer,1,&dwReturn,NULL))
	{
		wsprintf (szMsg, TEXT("Could not write file INO1:"));
		return;
	}

	RETAILMSG(1,(TEXT("Write IIC addr 0x%x  val 0x%x\r\n"),dwInBuffer[0],dwInBuffer[1]));
	m_Spi_writeval = dwInBuffer[0]&0xFF;
	
	this->UpdateData(FALSE);
	
}

void CIF101Ctrl::OnSpiRead() 
{
	// TODO: Add your control notification handler code here
	TCHAR szMsg[1000];

	UINT16 dwInBuffer[2] = {0};
	UINT16 dwOutBuffer[2] = {0};
	DWORD dwReturn = 0;
	
	this->UpdateData(TRUE);
	dwInBuffer[0] = m_Spi_read_cmd;
	if(!DeviceIoControl(hINNO,SPI_READ_REG,dwInBuffer,1,dwOutBuffer,1,&dwReturn,NULL))
	{
		wsprintf (szMsg, TEXT("Could not write file INO1:"));
		return;
	}

	m_Spi_readval = dwOutBuffer[0]&0xFF;
	
	this->UpdateData(FALSE);
	
}

BOOL CIF101Ctrl::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	// TODO: Add extra initialization here
	m_IIC_writeaddr = 0x245;
	m_IIC_writeval = 86;
	m_IIC_readaddr = 0x245;
	m_IIC_readval = 0;

	m_Spi_read_cmd = 0x0;
	m_Spi_write_cmd = 0x0;
	UpdateData(FALSE);
	hINNO = NULL;
	hINNO = CreateFile (L"INO1:",               // Open One.txt
                      GENERIC_READ,           // Open for reading
                      0,                      // Do not share
                      NULL,                   // No security
                      OPEN_EXISTING,          // Existing file only
                      FILE_ATTRIBUTE_NORMAL,  // Normal file
                      NULL);                  // No template file

	if (hINNO == INVALID_HANDLE_VALUE)
	{
		// Your error-handling code goes here.
		MessageBox(TEXT("INO1: Open Failed!!!"));
		return FALSE;
	}

	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

void CIF101Ctrl::OnClose() 
{
	// TODO: Add your message handler code here and/or call default
	if(hINNO)
		CloseHandle(hINNO);	
	CDialog::OnClose();
}


#define INNO_STARTUP 0x88
void CIF101Ctrl::OnDOWNLOADFIRWARM() 
{
	DWORD dwReturn = 0;
	if(!DeviceIoControl(hINNO,INNO_STARTUP,NULL,0,NULL,0,&dwReturn,NULL));
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -