主题:EM9280-SPI通信问题

  共有52966人关注过本帖    
帅哥哟,离线,有人找我吗?
jagict
1楼 信息 | 搜索 | 邮箱


加好友 发短信
  发帖心情 Post By:2013-11-4 13:24:00   [只看该作者]

帮忙看一下配置吧,现在的波形没什么指导意义,就是MOSI高电平正弦波形,其他低电平几乎无信号。
主函数:
            hSPI = SPI.SPIOpen();
            if...
            SPI.SPISetBandRate(hSPI, SPI.SPI_TRANSFER_HS_NORMAL_SPEED);
            TxBuffer[0] = 0xfc;  //主机发送的数据_低8位
            TxBuffer[1] = 0xf3;  //主机发送的数据_高8位
            sSPI.BitCount = 2;
            sSPI.pDatBuf = pTxBuffer;
            sSPI.dwDatLen = 2;
            sSPI.bLockCS = 0;
            Marshal.Copy(TxBuffer, 0, pTxBuffer, 2);
            bRes = SPI.WriteFile(hSPI, ref sSPI, sizeSPI, ref uLen, 0);
            if (!bRes)...
            sSPI.BitCount = 4;
            sSPI.pDatBuf = pRxBuffer;
            sSPI.dwDatLen = 10;
            sSPI.bLockCS = 1;
            while (true)
            {
                bRes = SPI.ReadFile(hSPI, ref sSPI, sizeSPI, ref uLen, 0);
            }
 SPI.CS文件:
 public static bool SPIConfigure(int hDevice)
        {
            int sizeSSP_INIT = Marshal.SizeOf(typeof(SSP_INIT));
            SSP_INIT spiinit;
            spiinit.eMode = SSP_MODE_SPI;
            spiinit.eLength = SSP_WORD_LENGTH_16BITS;
            spiinit.bDmaEnable = 0;                // 0: dma disabled, 1: dma enabled
            spiinit.b_ceata_ccs_err_en = 0;        // CEATA Unexpected CCS Error logic enable. 0: disabled, 1: enabled
            spiinit.bPhase = 0;                    // SPI, MemStick, and SD modes
            spiinit.bPolarity = 0;                 // SPI, MemStick, and SD modes
            spiinit.bSlave = 0;                    // 0: SSP is Master, 1: SSP is Slave
            spiinit.bIgnoreCrc = 0;                // Ignore the response CRC
            spiinit.bBusWidth4 = 0;                // 0: 1-bit bus, 1: 4 bit bus

            spiinit.bWaitIrq = 0;
            spiinit.bLongResp = 0;                 // Get long response from device
            spiinit.bCheckResp = 0;                // Check Response against reference to insure integrity of response
            spiinit.bGetResp = 0;                  // wait for a response

            spiinit.u16TransferCount = 0;
            spiinit.bEnable = 0;                   // Command Transmit Enable.
            spiinit.bWaitCmd = 0;                  //
            spiinit.bDataTransfr = 0;              // Data Transfer Enable
            spiinit.bRead = 0;                     // Read Mode

            spiinit.bSlaveOutDisable = 0;          // 0: SSP can drive MISO in slave mode, 1: SSP does not drive MISO
            spiinit.bHalfDuplex = 0;
            spiinit.bLockCs = 1;
            if (DeviceIoControl(hDevice, SPI_IOCTL_SSPCONFIGURE, ref spiinit, sizeSSP_INIT, null, 0, 0, IntPtr.Zero) == false)
            {
                return false;
            }
            return true;
        }

  单帖管理 | 引用 | 回复 回到顶部

返回首页

EM9280-SPI通信问题

用户名:
            验证码: 验证码,看不清楚?请点击刷新验证码
内容: