TI中文支持网
TI专业的中文技术问题搜集分享网站

CC3235SF GSPI接收数据错误

Other Parts Discussed in Thread:LAUNCHXL-CC3235SF, CC3235SF, CC2640R2F

硬件使用的是官方的LAUNCHXL-CC3235SF开发板,在运行C:\ti\simplelink_cc32xx_sdk_4_20_00_07\examples\rtos\CC3235SF_LAUNCHXL\drivers\spimaster\freertos

这个例子是发现发送可以正常发送,但是接收到的数据却不对。

于是为了排除问题我把MOSI与MISO短接到了一起,按道理应该就是发送什么接收什么了吧,但是接收还是错误的。

下面是我的代码:

/* Open SPI as master (default) */
 SPI_Params_init(&spiParams);
 spiParams.frameFormat = SPI_POL0_PHA0;
 spiParams.dataSize = 8;
 spiParams.bitRate = 1000000;
 masterSpi = SPI_open(CONFIG_SPI_MASTER, &spiParams);
 if (masterSpi == NULL) {Display_printf(display, 0, 0, "Error initializing master SPI\n");while (1);
 }
 else {Display_printf(display, 0, 0, "Master SPI initialized\n");
 }/*
 * Master has opened CONFIG_SPI_MASTER; set CONFIG_SPI_MASTER_READY high to
 * inform the slave.
 */GPIO_write( CONFIG_SPI_MASTER_READY, 1 );/* Copy message to transmit buffer */
 strncpy((char *) masterTxBuffer, MASTER_MSG, SPI_MSG_LENGTH);for (i = 0; i < 1; i++) {/** Wait until slave is ready for transfer; slave will pull* CONFIG_SPI_SLAVE_READY low.*/GPIO_write(CONFIG_SPI_MASTER_READY, 0);/* Initialize master SPI transaction structure */masterTxBuffer[0] = 0x01;masterTxBuffer[1] =0x02;masterTxBuffer[2] =0x03;masterTxBuffer[3] =0x04;masterTxBuffer[4] =0x05;memset((void *) masterRxBuffer, 0, SPI_MSG_LENGTH);transaction.count = SPI_MSG_LENGTH;transaction.txBuf = (void *) masterTxBuffer;transaction.rxBuf = (void *) masterRxBuffer;/* Toggle user LED, indicating a SPI transfer is in progress *///  GPIO_toggle(CONFIG_GPIO_LED_1);/* Perform SPI transfer */transferOK = SPI_transfer(masterSpi, &transaction);if (transferOK) {GPIO_write(CONFIG_SPI_MASTER_READY, 1);Display_printf(display, 0, 0, "Master received:[%02x] %02x %02x %02x %02x %02x",i,masterRxBuffer[0],masterRxBuffer[1],masterRxBuffer[2],masterRxBuffer[3],masterRxBuffer[4]);}else {Display_printf(display, 0, 0, "Unsuccessful master SPI transfer");}/* Sleep for a bit before starting the next SPI transfer  */
 }

我发送的是 5 个字节 0x01 0x02 0x3 0x04 0x05,理论上也应该收到  0x01 0x02 0x3 0x04 0x05 但是在transaction.rxBuf里收到的确是 0x03 0x0c 0x0f 0x30 0x1b。

我用逻辑分析仪也看了,在逻辑分析仪上看的数据没问题:

请教下问题可能出在哪?卡在这已经一个星期了。。。多谢!

Kevin Qiu1:

user1775171 说:排除问题我把MOSI与MISO短接到了一起

将MOSI与MOSI相连

,

user1775171:

您好,
现在将SPICC32XXDMA_PIN_07_MOSI与SPICC32XXDMA_PIN_06_MISO相连是为了形成环路,仅用于测试收到的数据是否与发出的一致。
开发板上的MOSI确实已经与芯片的PIN07相连了。
不知道是我哪个地方没有配置对吗?还是说MISO引脚需要特殊的配置一下,否则MCU读取不到正确的电平?
谢谢!

,

user1775171:

因为我这边只有一块LAUNCHXL板子,没法做demo中的主从机实验,但是按照之前开发其它单片机的经验来说,主机SPI发送数据的同时都是可以同时接收数据的,难道CC3235是不允许的吗?
谢谢!

,

Kevin Qiu1:

可以使用CC13X2、CC26X2、CC13X0、CC2640r2f、CC32XX等simplelink产品测试SPI,例程都是一样的
我之前测试没有问题

赞(0)
未经允许不得转载:TI中文支持网 » CC3235SF GSPI接收数据错误
分享到: 更多 (0)