工具/软件:Code Composer Studio
我正在尝试修改 SimpleLink SDK 中 spislave 示例中的代码。 我希望 MSP432成为另一个器件的 SPI 从器件、并将其传输的数据发送到网络套接字。
1) 1)我已经编辑了 MSP_EXP432E401Y.c 文件的 SPI 部分、如下所示:
/*
* ========================================= SPI ========================================================
*
#include
#include
SPIMSP432E4DMA_Object spiMSP432E4DMAObjects[MSP_EXP432E401Y_SPICOUNT];
/*
*注意:SD 驱动程序可使用以下 SPI 实例进行通信
*通过 SPI 使用 SD 卡。 下面的'DEFaultTxBufValue'字段被设置为
*(~0)以满足 SDSPI 驱动器要求。
*
CONST SPIMSP432E4DMA_HWAttrs spiMSP432E4DMAHWAttrs[MSP_EXP432E401Y_SPICOUNT]={
{
baseAddr = SSI2_base、
.intNum = INT_SSI2、
.intPriority =(~0)、
defaultTxBufValue =(~0)、
.rxDmaChannel = UDMA_CH12_SSI2RX、
TxDmaChannel = UDMA_CH13_SSI2TX、
.minDmaTransferSize = 10、
clkPinMask = SPIMSP432E4_PD3_SSI2CLK、
fsPinMask = SPIMSP432E4_PD2_SSI2FSS、
.xdata0 PinMask = SPIMSP432E4_PD1_SSI2XDAT0、
.xdata1 PinMask = SPIMSP432E4_PD0_SSI2XDAT1
}、
{
baseAddr = SSI3_base、
.intNum = INT_SSI3、
.intPriority =(~0)、
defaultTxBufValue =(~0)、
.minDmaTransferSize = 10、
.rxDmaChannel = UDMA_CH14_SSI3RX、
TxDmaChannel = UDMA_CH15_SSI3TX、
clkPinMask = SPIMSP432E4_PQ0_SSI3CLK、
fsPinMask = SPIMSP432E4_PQ1_SSI3FSS、
.xdata0引脚掩码= SPIMSP432E4_PQ2_SSI3XDAT0、
.xdata1引脚掩码= SPIMSP432E4_PQ3_SSI3XDAT1
}
};
CONST SPI_Config SPI_CONFIG[MSP_EXP432E401Y_SPICOUNT]={
{
.fxnTablePtr =&SPIMSP432E4DMA_fxnTable、
.object =&spiMSP432E4DMAObjects[MSP_EXP432E401Y_SPI2]、
hwAttrs =&spiMSP432E4DMAHWAttrs[MSP_EXP432E401Y_SPI2]
}、
{
.fxnTablePtr =&SPIMSP432E4DMA_fxnTable、
.object =&spiMSP432E4DMAObjects[MSP_EXP432E401Y_SPI3]、
hwAttrs =&spiMSP432E4DMAHWAttrs[MSP_EXP432E401Y_SPI3]
}、
};
const uint_least8_t SPI_count = MSP_EXP432E401Y_SPICOUNT;
2) 2)我编辑了 MSP_EXP432E401Y.h 文件:
/*!
* @def MSP_EXP432E401Y_SPIName
* @ MSP_EXP432E401Y 开发板上 SPI 名称的简要枚举
*
typedef 枚举 MSP_EXP432E401Y_SPIName{
MSP_EXP432E401Y_SPI2 = 0、
MSP_EXP432E401Y_SPI3、
MSP_EXP432E401Y_SPICOUNT
} MSP_EXP432E401Y_SPIName;
3)在 Board.h 中:
#define Board_SPI0 MSP_EXP432E401Y_SPI2
#define Board_SPI1 MSP_EXP432E401Y_SPI3
4) 4)在我的代码中:
SPI_Params_init (&spiParams);
spiParams.frameFormat = SPI_POL0_PHA0;
spiParams.mode = SPI_SLAVE;
//spiParams.transferCallbackFxn = transferCompleteFxn;
spiParams.transferMode = SPI_MODE_BLOCKING;
spiParams.transferTimeout = SPI_TIMEOUT;
slaveSpi = SPI_open (Board_SPI1、&spiParams);
if (slaveSpi == NULL){
Display_printf (display、0、0、"初始化从器件 SPI\n"时出错);
while (1);
}
否则{
display_printf (display、0、0、"已初始化从器件 SPI \n");
}
但是、当我转到代码的这一部分时、我收到一条消息、指出初始化从器件 SPI 时出错。
您能告诉我在这里发生了什么错误吗? 设置 SPI 端口还需要做什么吗?