工具/软件:TI-RTOS
你(们)好
我的版本:
ccsv7.4
tidriver_msp43x_2_20_00_08
BIOS_6_46_00_23
我仍在使用 EXP_MSP430F5529LP 开发板来验证 SPI 通信 ,最近 ,我卡在 SPI_TRANSF() 函数中。 在 TI-RTOS 下配置 SPI 从模式。
目标:SPI 主器件发送一个字节、SPI 从器件 判断该字节并继续接收或发送数据。
这是我的配置
/*创建 I2C 以供使用*/
SPI_PARAMS_INIT (&spiB1_SLAVE_PARAMS);
spiB1_SLAVE_PARAMS.transferMode = SPI_MODE_BLOCKING;
spiB1_SLAVE_PARAMS.MODE = SPI_SLAVE;
spiB1_slave_Params.dataSize = 8;
spib1_slave = SPI_open (Board_SPIB1_slave、&spib1_slave_Params);
if (spiB1_slave = NULL){
System_abort ("初始化 SPI B1\n"时出错);
}否则{
System_printf ("SPI B1已初始化!\n");
}
system_flush();
问题 我使用以下两段代码进行数据接收验证
//code 1
//一次性截取3个字节
SPI_Transaction spiTransaction;
pisaction.txBuf = NULL;
spiTransaction.rxBuf = rxBuf;
spiTransaction.count = 3;
if (spi_transfer (spib1_slave、&spiTransaction)= NULL){
System_printf ("SPIB1_SendData SPI Bus fault\n");
System_flush ();
}
System_printf ("%s\b</bept
);系统代码/r1begbytes 1 / r/ r/ begb
SPI_Transaction spiTransaction;
printTransaction.txBuf = NULL;
spiTransaction.rxBuf = rxBuf;
spiTransaction.count = 1;
if (spi_transfer (spib1_slave、&spiTransaction)= NULL){
System_printf ("SPIB1_SendData SPI Bus fault\n");
System_flush ();
}//继续保留2字节2 bytes (spiBufault = 1);spiBufault
= 1 (spi_b1n1);spiBufault = 1);spi_bid_bn1
结果
当我使用 SPI 主器件一次发送三个字节时、代码1 接收数据正常、 buf 代码1 将在 第二 个 SPI_transfer ()中被阻断;
当我 使用 SPI 主器件 发送 三个字节 时、每个字节相隔一秒、 代码1 2 接收数据均正常。
为什么会出现此问题?
祝你一切顺利
XC.mo
