买了MINI6410,却没多少相关应用程序例子。现正在调HS-SPI,网上找不到应用层调HS-SPI底层驱动。自己的却不能读写,大家帮忙看看
BOOL CHSPIDLLApp::HspiOpen()
{
m_SPIDevice = CreateFile(_T("HSP1:"),GENERIC_READ|GENERIC_WRITE,0, NULL, OPEN_EXISTING,0, NULL);
if(m_SPIDevice==INVALID_HANDLE_VALUE){return FALSE;}
// Set SPI Mode
m_SpiConfig.dwMode = SPI_MASTER_MODE;
// Set SPI Clock Prescale if it is master mode
m_SpiConfig.dwPrescaler = 2;
// Use FULL-DUFLEX Mode
m_SpiConfig.bUseFullDuflex = true;
// Set Timeout Value of SPI Transfer.
m_SpiConfig.dwTimeOutVal = 5000;
// Set Rx Mode
m_SpiConfig.bUseRxDMA = false;
m_SpiConfig.bUseRxIntr = false;
// Set RxDMA Burst Data Length
m_SpiConfig.dwRxBurstDataLen = 1;
// Set Tx Mode
m_SpiConfig.bUseTxDMA = false;
m_SpiConfig.bUseTxIntr = false;
// Set TxDMA Burst Data Length
m_SpiConfig.dwTxBurstDataLen = 1;
if(!DeviceIoControl(m_SPIDevice,SPI_IOCTL_SET_CONFIG,&m_SpiConfig,sizeof(m_SpiConfig),NULL,0,NULL,NULL))
{
return FALSE;
}
if(!DeviceIoControl(m_SPIDevice,SPI_IOCTL_START,NULL,0,NULL,0,NULL,NULL))
{
return FALSE;
}
return TRUE;
}
BOOL CHSPIDLLApp::HspiClose()
{
return CloseHandle(m_SPIDevice);
}
BOOL CHSPIDLLApp::HspiRead(unsigned char outbuf[],unsigned char len)
{
DWORD cBytes=0;
return ReadFile(m_SPIDevice,outbuf,len,&cBytes,NULL);
}
BOOL CHSPIDLLApp::HspiWrite(unsigned char inbuf[],unsigned char len)
{
DWORD cBytes=0;
return WriteFile(m_SPIDevice,inbuf,len,&cBytes,NULL);
}