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

CC3200 SPI收发数据

使用官方的SPI_Demo例子 Master模式 可以正常发数据出去,但是怎么接受数据啊?

还有就是论坛TI员工提供SPI DMA模式的例子(spi_demo_DMA.zip),但是这个例子在while( !(MAP_SPIIntStatus(GSPI_BASE,false) & SPI_INT_EOW) );就卡死了。。。。有没有什么解决方案?

da qin zheng sheng:

1.接收数据可以用示波器来观测。

2.建议先用普通的中断方式来接收!使能相关中断以及设置断点,如果有数据一定会进入中断服务程序的!

3.while( !(MAP_SPIIntStatus(GSPI_BASE,false) & SPI_INT_EOW) );可以换成软件延时1毫秒再进行后续处理。

 

user4187796:

回复 da qin zheng sheng:

楼主是接收处理中这句话出现卡死吗?

这应该是判断数据状态的,再说demo中肯定会给出中断的收发例程的。可以好好找找查找下原因。

不行自己写程序进行轮训接收中断FLAG位

user4441475:

使能SPI接收中断,在中断读出FIFO的数据到变量就行,具体的寄存器,要参考demo去修改,另外就是你何时使用这些数据了

zhirui zheng:

接收完会有触发中断,缓冲区里是接收到的数据,这个demo应该是用的外设,所以很多工作硬件都完成了,你直接在中断处理程序里做处理,把数据传出来就好了、、

zrk787:

SPI通信需要四个引脚,分别定义为输入MISO,输出MOSI,时钟CLK和片选端CS.按照SPI的时序对对传感器里面的寄存器进行读写就行了.

Shiwei Sun:

每次接收到的数据都必须在下一次数据传输之前被采样。如果之前接收到的数据没有被读取,这些已经接收完成的数据有可能被丢弃,导致SPI物理模块最终失效。所以程序里一般都会在SPI传输完数据后,去读SPI设备里的数据

user1604881:

回复 Shiwei Sun:

什么意思?

user4254532:

可以使用接受标志位,一旦接收到,标志位置1,读取数据寄存器即可

yang li19:

如果想要接收数据,楼主要修改Demo的代码,楼主可以仔细阅读官网给出的手册,里面给出了接收数据的过程。楼主只要自己修改一下代码就可以。

循环问题,楼主可以通过断点调试的方式查看是那个地方的变量出问题,或者换一种判断方式。

Yonghua Pan:

官方的例程里面应该是master会接收到数据在g_ucRxBuff里面,你有看到SLAVE传过来的数据吗?

赞(0)
未经允许不得转载:TI中文支持网 » CC3200 SPI收发数据
分享到: 更多 (0)