请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:CC3220SF-LAUNCHXL 您好!
连续运行多个 SPI 传输时遇到问题、第一个 SPI 传输成功开始、但当我运行下一个传输时失败。 我的 SPI 模块以回调模式运行、提供问题的函数如下所示:
SPI_Transaction 事务; int i; 对于(I = 0;I < 5;I++) { rxBuffer1[i]= 0x00; TxBuffer1[i]= 0x00; rxBuffer2[i]= 0x00; TxBuffer2[i]= 0x00; rxBuffer3[i]= 0x00; txBuffer3[i]= 0x00; } /////////////////////////////////// 获取编码器1计数//////////// txBuffer1[0]= request_count; transaction.count = 5; transaction.txBuf =(void *) txBuffer1; transaction.rxBuf =(void *) rxBuffer1; transaction.arg =(void *)'a'; GPIO_WRITE (编码器_S1、0); bool transferOK = SPI_transfer (encoderSPI、事务); 如果(转让) { GPIO_WRITE (编码器_S1、1); } ////////////////////////////////////////////// 获取编码器2计数////////////////////////////////////////////////////////////////// txBuffer2[0]= request_count; transaction.count = 5; transaction.txBuf =(void *) txBuffer2; transaction.rxBuf =(void *) rxBuffer2; transaction.arg =(void *)"b"; GPIO_WRITE (ENCODER_S2、0); transferOK = SPI_transfer (编码 SPI、事务); 如果(转让) { GPIO_WRITE (ENCODER_S2、1); } ////////////////////////////////////////////// 获取编码器3计数//////////////////////////////////////////////////////////////// txBuffer3[0]= request_count; transaction.count = 5; transaction.txBuf =(void *) txBuffer3; transaction.rxBuf =(void *) rxBuffer3; transaction.arg =(void *)'c'; GPIO_WRITE (ENCODER_S3、0); transferOK = SPI_transfer (编码 SPI、事务); 如果(转让) { GPIO_write (Encoder_S3、1); }
如果您需要更多信息、请告诉我、我们将非常感谢您的帮助!