回复帖子:(客人(222.209.*.*))[求助]ES9281怎样控制44和...

用户名:   *您没有注册?
密码:   *忘记论坛密码?    标题采用“回复:XXX....”
验证码 点击获取验证码
主题标题:  *不得超过 200 个汉字
当前心情
上一页 发帖表情 下一页
内容
  

主题最新回顾(发布时间:2016-5-30 21:38:00)
--  作者:x10(182.148.*.*)
--  
在SPI_CSn无效时,SPI_MOSI应当是没有意义。你是为什么需要让SPI_MOSI始终输出为低?因为在上电时SPI_MOSI还是GPIO输入模式,且上拉为高,所以不能完全做到MOSI始终为低。

主题最新回顾(发布时间:2016-5-30 15:42:00)
--  作者:客人(222.209.*.*)
--  
我就是参考例程,但还是不能控制。
这是我写的,麻烦帮我看下是哪里没有对

private int _hSPI; // I2C设备操作号
BAL.SPI_INFO sSPI;
private int _sizeSPI = Marshal.SizeOf(typeof(BAL.SPI_INFO));       //16
private IntPtr _pSPIinfo = Marshal.AllocHGlobal(8);
sSPI = new BAL.SPI_INFO(); // I2C设备操作数据
sSPI.BitCount = 8;
sSPI.pDatBuf = _pSPIinfo;
sSPI.dwDatLen = 1;
sSPI.bLockCS = 0;
_hSPI = BAL.SPI.SPIOpen();
if (0 == _hSPI)
{
     return false;
}
BAL.SPI.SPISetBandRate(_hSPI, 1000000);
uint uLen = 0;
byte[] TxBuffer = new byte[8];

TxBuffer[0] = 0x00;
TxBuffer[1] = 0x00;
TxBuffer[2] = 0x00;
TxBuffer[3] = 0x00;
TxBuffer[4] = 0x00;
TxBuffer[5] = 0x00;
TxBuffer[6] = 0x00;
TxBuffer[7] = 0x00;

Marshal.Copy(TxBuffer, 0, _pSPIinfo, 8);
bool bRes = BAL.SPI.WriteFile(_hSPI, ref sSPI, _sizeSPI, ref uLen, 0);

if (bRes)
{
     return false;
}

参数是这样设的
spiinit.eMode = SSP_MODE_SPI;
spiinit.eLength = SSP_WORD_LENGTH_8BITS;
//下面的0表示FALSE 1表示TRUE
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 = 1;                 // 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;

主题最新回顾(发布时间:2016-5-30 14:40:00)
--  作者:yy
--  
如果你使用这两个引脚做SPI,那么你不需要了解如何控制MOSI和SCLK的电平,我们的SPI驱动已经实现好了,只需要参考我们的SPI例程看看如何操作SPI就行了。

如果你只是要控制这两个引脚电平,参考文档,44,46分别是GPIO9,GPIO10,参考GPIO例程就可以控制这两个GPIO脚了。

44,46这两个脚是SPI和GPIO复用的,做SPI用的时候就不能做GPIO用,做GPIO的时候就不能做SPI用。

主题最新回顾(发布时间:2016-5-30 12:32:00)
--  作者:客人(222.209.*.*)
--  [求助]ES9281怎样控制44和46脚输出高电平或低电平
我在wince开发,使用C#,44和46现在使用的是MOSI和SCLK功能,我现在想用代码控制输出高电平或低电平。请问怎么实现?