TI中文支持网
TI专业的中文技术问题搜集分享网站

CC3235SF: 关于SPI通信,

Part Number:CC3235SFOther Parts Discussed in Thread:CC2640R2F, SYSCONFIG, ADS1299

请问我的SPI初始化和读写数据函数有错嘛,为什么我的程序执行到SPI_transfer就卡住了,望回复!

wu:

请问如何在一个空的工程上建立一个SPI通信,应该如何在CCS上进行设置和初始化SPI

,

Kevin Qiu1:

和之前添加uart一样,你可以参考spi例程然后将SPI添加到empty工程中

spi驱动的具体使用可以查看SDK安装路径C:/ti/simplelink_cc32xx_sdk_5_20_00_06/docs/drivers/doxygen/html/_s_p_i_8h.html

,

wu:

我这样初始化和syscfg这样设置,还需要什么呢,为什么一直打不开spi_open

,

wu:

您好,能告诉我一下怎么打开对应的SPI嘛,我SPI_open打不开

,

Kevin Qiu1:

看了下代码,没有找到SPI_Handle的定义信息,你在哪里定义的

,

wu:

 这个嘛

,

wu:

我定义了全局变量,这个应该没问题吧,是不是需要设置哪里才可以SPI_open

,

wu:

麻烦帮我看下问题,真的着急

,

Kevin Qiu1:

你可以看下CC2640r2f移植spi的程序https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1014053/faq-launchxl-cc2640r2-how-to-merge-a-driver-example-in-the-simple_peripheral-project-step-by-step-guide?tisearch=e2e-sitesearch&keymatch=faq%3Atrue

除了没有sysconfig,其他都是类似的

,

wu:

麻烦帮我看下我的读写数据函数有什么问题,为什么读到的数据都是0呢

,

wu:

请帮我看下,为什么我的读写函数,写进去是正常的,读数据读到的全是1呢,这是为什么呢?,请帮我看下读写数据函数是否有问题

,

Kevin Qiu1:

从代码看不出问题,你用逻辑分析仪看一下发送接收的实际数据

,

wu:

我发出数据1时,收到的数据也是255,这是什么原因呢,应该怎么改呀

,

Kevin Qiu1:

用逻辑分析仪测了吗,发送和接收数据具体是怎么样的

,

wu:

为什么我的SPI设置成callback就SPI_open失败呢

,

Kevin Qiu1:

callback参考下面的打开方式:

SPI_Handle spi;
SPI_Params spiParams;
SPI_Params_init(&spiParams);
spiParams.transferMode = SPI_MODE_CALLBACK;
spiParams.transferCallbackFxn = UserCallbackFxn;
spi = SPI_open(CONFIG_SPI0, &spiParams);
if (spi == NULL) {// Error opening SPIwhile (1);
}

注意如果之前使用SPI_open打开过spi,设置callback则需要先使用SPI_close()关闭,然后再重新打开

,

wu:

请问一下,例程的SPI通信都用到了额外的两根线CONFIG_SPI_MASTER_READY和CONFIG_SPI_SLAVE_READY来进行同步时钟,那我使用SPI与ADS1299通信的时候也需要引出额外的两根线来进行握手同步嘛?

,

wu:

麻烦回答一下呗,着急~

,

Kevin Qiu1:

The SPI protocol does not account for a built-in handshaking mechanism and neither does this SPI driver. Therefore, when operating in SPI_SLAVE mode, the application must provide such a mechanism to ensure that the SPI slave is ready for the SPI master. The SPI slave must call SPI_transfer() before the SPI master starts transmitting. Some example application mechanisms could include:

Timed delays on the SPI master to guarantee the SPI slave is ready for a SPI transaction.
A form of GPIO flow control from the slave to the SPI master to notify the master when ready.

当工作在SPI_SLAVE模式时,必须要有,作为master不需要

,

wu:

为什么我设置成CALLBACK模式的时候,编译会提示我callback没定义呢

,

Kevin Qiu1:

你的callback函数定义了吗

,

wu:

1.allback函数我是定义了,但是错误提示的是设置的模式没有定义,这个是什么情况呢?

2.将模式设置为callback模式的作用是什么,也就是什么情况下需要设置成callback模式,什么情况下可以设置成BLOCKING模式?

,

wu:

如何确定SPI移植成功呢,我通过SPI往寄存器里写数据,读出来的数据却是0,怎么检查呢

,

wu:

移植了SPI的驱动,为什么用示波器测SCLK和MOSI引脚没有波形,直接烧例程也没有波形,示波器是好的

,

Kevin Qiu1:

将从机连接上试一下,我用例程spi master和spi slave测试,他可以正常通信https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/811078/launchxl-cc3235sf-incorrect-data-received-on-spi-port/3006181?tisearch=e2e-sitesearch&keymatch=SPI%252525252520scope#3006181

赞(0)
未经允许不得转载:TI中文支持网 » CC3235SF: 关于SPI通信,
分享到: 更多 (0)

© 2024 TI中文支持网   网站地图 鲁ICP备2022002796号-1