Thread 中讨论的其他器件:EK-TM4C129EXL
工具/软件:TI-RTOS
我正在使用 EK-TM4C129EXL 评估套件。 我正在尝试通过 SPI 协议将数据从一个阵列发送到另一个阵列。 transmitBuffer(array1)中的数据不会发送到 receiveBuffer(array2)。 我还创建了一个布尔变量来检查 SPI 事务是否完成。 传输完成、但数据不会传输到第二个阵列。 我特此附上代码文件。
/* XDCtools 头文件*/ #include #include /* BIOS 头文件*/ #include #include /* TI-RTOS 头文件*/ #include #include #include #include #include
/*板头文件*/ #include "Board.h" #include #include #include #include #include #include
#define TASKSTACKSIZE 1024 UChar TransmitBuffer[8]={0、1、2、3、4、5、6、7}; UChar receiveBuffer[8]; Task_Structuretask0Struct; Char task0Stack[TASKSTACKSIZE]; btransferool OK; void spiDataSend() { SPI_Handle SPI; SPI_Params spiParams; SPI_Params_init (&spiParams); spiParams.transferMode = SPI_MODE_BLOCKING; spiParams.transferCallbackFxn = NULL; SPI = SPI_open (Board_SPI0、&spiParams); if (SPI == NULL){ /*打开 SPI 时出错*/ } SPI_Transaction spiTransaction; spiParams.dataSize = 8;// dataSize 的范围可以是4到8位*/ spiTransaction.count = 8; spiTransaction.txBuf = transmitBuffer; receivTransaction.rxBuf = spieBuffer; transferOK = SPI_transfer (SPI、&spiTransaction); if (transferOK){ /* SPI 传输或传输中出现错误*/ System_printf ("SPI 传输成功\n");//此消息在控制台上打印,但接收缓冲区为空,值为0。 system_flush(); } SPI_CLOSE (SPI); } int main (void) { Task_Params taskParams;
/*呼叫板初始化函数*/ Board_initGeneral(); Board_initGPIO(); Board_initSPI(); /*构造 spiDataSend Task 线程*/ Task_Params_init (&taskParams); taskParams.STACKSIZE = TASKSTACKSIZE; taskParams.stack =_task0Stack; Task_construct(&task0Struct,(Task_Functr) spiDataSend,&taskParams,NULL); BIOS_start(); 返回(0); }