主题中讨论的其他器件:MSP430FR6989
工具/软件:Code Composer Studio
你好
我正在使用 CCS/LAUNCHCC 3220 MODASF:从模式下的 SPI + DMA。 主器件是 MSP430FR6989。
通常(10到20字节)的数据通信是舒适的。
但是、当我尝试从器件发送50K 字节的数据时、我意识到从一开始只能发送2047字节。
导致此限制的原因是什么?
是否有办法避免这种情况?
该 SDK 是 simplelink_cc32xx_sdk_2_30_00_05。
我将随附我的代码。
/*
*==== transferCompleteFxn ===
* SPI_TRANSFCTION ()的回调函数。
*
空 transferCompleteFxn (SPI_Handle handle、SPI_Transaction *事务)
{
SEM_post (&slaveSpiSem);//进行从属保存
}
/*
*==== slaveThread ====
*从器件 SPI 在同时接收消息的同时向主器件发送消息
来自主设备的*消息。
*
void * slaveThread (void * arg0)
{
SPI_Handle slaveSpi;
状态= SEM_INIT (&slaveSpiSem、0、0);
if (status!= 0){
UART_PRINT ("创建 slaveSem\n"时出错);
while (1);
}
SPI_Params_init (&spiParams);
spiParams.frameFormat = SPI_POL0_PHA1;
spiParams.mode = SPI_SLAVE;
spiParams.transferCallbackFxn = transferCompleteFxn;
spiParams.transferMode = SPI_MODE_CALLACK;
slaveSpi = SPI_open (Board_SPI_slave、&spiParams);
transaction.count = i;//i=49304
transaction.txBuf =(void *) gnDataBytePoint;
transaction.rxBuf =(void *) gsCmdRcvBuffer;
/*
*设置 SPI 传输;Board_SPI_SLAVE_READY 将设置为通知
*主设备从设备就绪。
*
transferOK = SPI_transfer (slaveSpi、事务);
usleep(1000);
GPIO_WRITE (Board_SPI_MASTER_READY、1);//重置设置
if (transferOK){
/*等待传输完成*/
SEM_WAIT (&slaveSpiSem);//从 DMA 回调
谢谢你。
H.