您好
我正在尝试启动并运行 SPI0外设。 但是、当我尝试初始化并打开连接时、我的句柄为 NULL。 下面是我的代码(使用 uartEcho 示例项目作为起点):
void *mainThread(void *arg0)
{
SPI_Handle spi;
SPI_Params spi_params;
GPIO_init();
SPI_init();
SPI_Params_init(&spi_params);
spi_params.bitRate = 1000000;
spi = SPI_open(0, &spi_params);
if (spi == NULL) {
// Error opening SPI
return 0;
}
}
我在 LaunchXL.h 中的引脚配置
#define CC1310_LAUNCHXL_SPI0_MISO IOID_1 /* RF1.20 */ #define CC1310_LAUNCHXL_SPI0_MOSI IOID_0 /* RF1.18 */ #define CC1310_LAUNCHXL_SPI0_CLK IOID_6 /* RF1.16 */ #define CC1310_LAUNCHXL_SPI0_CSN IOID_2
LaunchXL.c 中的引脚配置
const SPICC26XXDMA_HWAttrsV1 spiCC26XXDMAHWAttrs[CC1310_LAUNCHXL_SPICOUNT] = {
{
.baseAddr = SSI0_BASE,
.intNum = INT_SSI0_COMB,
.intPriority = ~0,
.swiPriority = 0,
.powerMngrId = PowerCC26XX_PERIPH_SSI0,
.defaultTxBufValue = 0xFF,
.rxChannelBitMask = 1<<UDMA_CHAN_SSI0_RX,
.txChannelBitMask = 1<<UDMA_CHAN_SSI0_TX,
.mosiPin = CC1310_LAUNCHXL_SPI0_MOSI,
.misoPin = CC1310_LAUNCHXL_SPI0_MISO,
.clkPin = CC1310_LAUNCHXL_SPI0_CLK,
.csnPin = CC1310_LAUNCHXL_SPI0_CSN,
.minDmaTransferSize = 10
}
};
const SPI_Config SPI_config[CC1310_LAUNCHXL_SPICOUNT] = {
{
.fxnTablePtr = &SPICC26XXDMA_fxnTable,
.object = &spiCC26XXDMAObjects[CC1310_LAUNCHXL_SPI0],
.hwAttrs = &spiCC26XXDMAHWAttrs[CC1310_LAUNCHXL_SPI0]
}
};
const uint_least8_t SPI_count = CC1310_LAUNCHXL_SPICOUNT;
//Pin config
const PIN_Config BoardGpioInitTable[] = {
CC1310_LAUNCHXL_SPI0_MOSI | PIN_INPUT_EN | PIN_PULLDOWN,
CC1310_LAUNCHXL_SPI0_MISO | PIN_INPUT_EN | PIN_PULLDOWN,
CC1310_LAUNCHXL_SPI0_CLK | PIN_INPUT_EN | PIN_PULLDOWN,
CC1310_LAUNCHXL_SPI0_CSN | PIN_GPIO_OUTPUT_EN | PIN_GPIO_HIGH | PIN_PUSHPULL,
PIN_TERMINATE
};
我已尝试调试、但对于 SPI 句柄、无法读取 closeFxn。
我不知道为什么会这样。 如有任何帮助,将不胜感激。
