微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI WIFI设计交流 > CC3200 SPI收发数据

CC3200 SPI收发数据

时间:10-02 整理:3721RD 点击:

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

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

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

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

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

 

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

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

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

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

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

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

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

什么意思?

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

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

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

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

换个浏览器试试!

既然可以master发送数据了,那么接收你就直接读寄存器的数据就好了啊。有中断的话就在中断里面读,没有中断的话 ,你就查询的读。

像第二个问题的话,你最好使用调试器跟着走,看一看各个寄存器的值来进行判断。看看是不是还有那个关键的寄存器没有配置正确。

设个数据接收标志位试试,在SPI中断中读标志位。

问题已解决,前几天都回复结贴了,发了几次,邮件提醒审核通过了,但是看不见

具体参考的 https://github.com/severin-kacianka/cc3200_dma_spi_example 

只要带链接的好像都看不见,应该是被官方和谐了。

呵呵呵呵呵  有一种功能叫仿真,单步调试可以直接清晰的看到所有的问题。

以前调试SI4432的时候你可能收到了数据芯片也产生中断了,但是是单片机没有处理好中断导致的问题。

记住:单步调试

你好,想问一下在哪里能够找到官方提供的历程?

您好,官网手册哪里有提到SPI?

CC3200SDK里就有SPI的例程

看这边  http://processors.wiki.ti.com/index.php/CC32xx_SPI_Demo

Yonghua Pan

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

您好,g_ucRxBuff里的数据一直是“\”,怎么回事?

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top