请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:LAUNCHXL-CC1352P Thread 中讨论的其他部件:CC2652P、 SysConfig
您好!
我们使用 LAUNCHXL-CC1352P 在 CC2652P 中开发应用。
我们的项目需要两个 SPI 通信。 如何在 SysConfig 工具中实现自定义 SPI 配置?
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
您好!
我们使用 LAUNCHXL-CC1352P 在 CC2652P 中开发应用。
我们的项目需要两个 SPI 通信。 如何在 SysConfig 工具中实现自定义 SPI 配置?
不确定两个 SPI 通信的含义。
我需要一条 SPI 总线、但需要两个不同的 CSn 信号、您可以将 sysconf 中的 SPI 配置为3线 SPI、然后让应用控制两个不同的 CSn (每个需要与之通信的外设一个)。
如果您需要使用两个 SPI 外设、因为您有两个单独的 SPI 总线、只需在 sysconf 中添加两个 SPI 并为您要使用的引脚配置它们。
示例代码:
#define SPI_MSG_LENGTH (3) unsigned char masterRxBuffer0[SPI_MSG_LENGTH]; unsigned char masterTxBuffer0[SPI_MSG_LENGTH] = {0x55, 0xff, 0x55}; unsigned char masterRxBuffer1[SPI_MSG_LENGTH]; unsigned char masterTxBuffer1[SPI_MSG_LENGTH] = {0xff, 0x55, 0xff}; void *masterThread(void *arg0) { SPI_Handle spi0; SPI_Handle spi1; SPI_Params spiParams; SPI_Transaction transaction0; SPI_Transaction transaction1; /* Open SPI as master (default) */ SPI_Params_init(&spiParams); spiParams.frameFormat = SPI_POL0_PHA1; spiParams.bitRate = 4000000; spi0 = SPI_open(CONFIG_SPI_0, &spiParams); spi1 = SPI_open(CONFIG_SPI_1, &spiParams); //memset((void *) masterRxBuffer, 0, SPI_MSG_LENGTH); transaction0.count = SPI_MSG_LENGTH; transaction0.txBuf = (void *) masterTxBuffer0; transaction0.rxBuf = (void *) masterRxBuffer0; transaction1.count = SPI_MSG_LENGTH; transaction1.txBuf = (void *) masterTxBuffer1; transaction1.rxBuf = (void *) masterRxBuffer1; while(1) { SPI_transfer(spi0, &transaction0); SPI_transfer(spi1, &transaction1); } }
Siri