主题中讨论的其他器件:CC3235SF
您好!
我正在尝试在 SPI 端口上获取正确的数据。 但我正面临一种奇怪的行为。
我正在使用 cc3235作为 SPI 主器件并尝试执行 SPI 事务。
发送的数据始终如预期。 但是、有时通过 SPI 接收数据符合预期
有时收到的数据不正确。
我在逻辑分析仪上检查了数据、数据是正确的、符合预期。 请查看随附的屏幕截图。
以下是我使用的设置:
{
baseAddr = GSPI_base、
.intNum = INT_GSPI、
.intPriority =(~0)、
spiPRCM = PRCM_GSPI、
.csControl = SPI_SW_CTRL_CS、
csPolarity = SPI_CS_ACTIVELOW、
.pinMode = SPI_3PIN_MODE、
.TurboMode = SPI_Turbo_OFF、
scratchBufPtr =&spiCC3235SDMAscratchBuf[CC3235SF_LAUNCHXL_SPI1]、
defaultTxBufValue = 0、
.rxChannelIndex = UDMA_CH6_GSPI_RX、
txChannelIndex = UDMA_CH7_GSPI_TX、
.minDmaTransferSize = 100、
.mosipin = SPICC32XXDMA_PIN_07_MOSI、
MISO 引脚= SPICC32XXDMA_PIN_06_MISO、
clkPin = SPICC32XXDMA_PIN_05_CLK、
csPin = SPICC32XXDMA_PIN_NO_CONFIG
}
SPI_Params_init (&spiParams);
// spiParams.frameFormat = SPI_POL0_PHA0;
spiParams.mode = SPI_MASTER;
spiParams.bitrate = 2000000;
spiParams.dataSize = 8;
masterSpi = SPI_open (Board_SPI0、&spiParams);
if (masterSpi == NULL){
UART_PRINT ("初始化主器件 SPI\n"时出错);
while (1);
}
否则{
UART_PRINT ("已初始化主 SPI \n");
}
int32_t cc_spi_read (uint8_t *缓冲区、uint32_t len)
{
/*断言 CS */
GPIO_WRITE (CC3235SF_GPIO_OV_SPI_CS、0);
transaction.count = len;
transaction.txBuf =空;
transaction.rxBuf =(void *) buff;
SPI_TRANSFCTION (masterSpi、事务);
/*断言 CS */
GPIO_WRITE (CC3235SF_GPIO_OV_SPI_CS、1);
返回 len;
}