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.

[参考译文] CC3220MOD:SPI 通信

Guru**** 2564565 points
Other Parts Discussed in Thread: CC3220S

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/647943/cc3220mod-spi-communication

器件型号:CC3220MOD
主题中讨论的其他器件:CC3220S

您好!

我一直在尝试与 SPI 通信从器件。 我参考 Resource Explorer / TI-Drivers API 文档中的以下代码。 但是、我无法启动 SPI 通信。 我是否应该作为配置执行其他操作?   可能在 CC3220S_LAUNCHXL.c 或 CC3220S_LAUNCHXL.h 文件中?   

另一个问题,PIN_08是为 SPI1配置 CS,如何管理 CS?   

引脚  

PIN_07  MOSI、

PIN_06  MISO、

PIN_05  CLK、

PIN_08  CS

参考代码

SPI_Handle SPI;
SPI_Params spiParams;
SPI_Transaction spiTransaction;
uint8_t transmitBuffer[MSGSIZE];
uint8_t receiveBuffer[MSGSIZE];
bool transferOK;
spi_init();//初始化 SPI 驱动程序
SPI_Params_init(&spiParams);//初始化 SPI 参数
spiParams.dataSize = 8;// 8位数据大小
SPI = SPI_OPEN(Board_SPI0、&spiParams);
if (SPI == NULL){
while (1);// spi_open()失败
//填入 transmitBuffer
spiTransaction.count = MSGSIZE;
spiTransaction.txBuf = transmitBuffer;
receivTransaction.rxBuf = spieBuffer;
transferOK = SPI_transfer(SPI、&spiTransaction);
如果(!transferOK){
// SPI 中出现错误或传输已在进行中。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Cagdas Yesildag、

    看起来您的一切都很好。
    如果您使用的是 SDK 示例中的 CC3220S_LAUNCHXL.c、则应该可以(因为您使用的是默认配置)。

    您是否正在使用最新的 SDK 1.50.00.06? 如果是、则存在已知的 SPI 驱动程序错误(请参阅下面的 e2e 文章)。 e2e.ti.com/.../2349994

    您可以恢复到 SDK1.40并再次检查同一个示例。
    此问题与 DMA 有关、因此您还可以将事务大小限制为小于 DMA 阈值(100)。

    此 SPI 驱动程序问题将在我们的下一个 SDK 版本中修复。

    BR、
    Kobi