SPI之间进行通信出现问题,求强人帮忙

来源:百度知道 编辑:UC知道 时间:2024/06/01 17:23:44
两块DSP都为TMS320LF2407。想要使用SPI来进行两者的通信。但是编写的程序有时候完全正确,有时候又出现各种错误。
发送端代码:
http://www.91files.com/?WALW749D9BC2R9F1EYQK
接收端代码:
http://www.91files.com/?P16EL7PJ1BSREQZJKP3I

两块DSP的中断向量都正确,都可以正常运行PWM等示例程序。
检测发送端CLK波形正确,DSP之间的接线是正确的(PC2~PC5)。
运行程序之前都load到外扩的存储器中,并且resetCPU。
出现错误的状况:
接收到的数据理论上应该是0x0001,0x4002,0x8003的循环。
结果是0x0000,0x0000,0x0001的循环。
中间还夹杂着正确的数值,而且出现正确数据的位置也正确的对应着发送的对应数据,也就是说这些数值正确的数据是完全正确的结果。
CLK是1M。
希望有高人帮忙看下到底程序有问题还是硬件有问题,希望能帮忙解决下。
怎么找不到?什么找不到?

实在是比较难啊。

看成DPS了,不好意思,这问题太深奥,不会。

不能帮助你,很惭愧啊 - -。

代码无法打开.CLK是1M的话应该是在比较稳定的情况下的,估计是你的代码问题.

SPI接口的全称是"Serial Peripheral Interface",意为串行外围接口,是Motorola首先在其MC68HCXX系列处理器上定义的。SPI接口主要应用在EEPROM, FLASH,实时时钟,AD转换器,还有数字信号处理器和数字信号解码器之间。
SPI接口是在CPU和外围低速器件之间进行同步串行数据传输,在主器件的移位脉冲下,数据按位传输,高位在前,地位在后,为全双工通信,数据传输速度总体来说比I2C总线要快,速度可达到几Mbps。

SPI接口是以主从方式工作的,这种模式通常有一个主器件和一个或多个从器件,其接口包括以下四种信号:

(1)MOSI – 主器件数据输出,从器件数据输入
(2)MISO – 主器件数据输入,从器件数据输出
(3)SCLK – 时钟信号,由主器件产生
(4)/SS – 从器件使能信号,由主器件控制
在点对点的通信中,SPI接口不需要进行寻址操作,且为全双工通信,显得简单高效。
在多个从器件的系统中,每个从器件需要独立的使能信号,硬件上比I2C系统要稍微复杂一些。
SPI接口在内部硬件实际上是两个简单的移位寄存器,传输的数据为8位,在主器件产生的从器件使能信号和移位脉冲下,按位传输,高位在前,低位在后。如下图所示,在SCLK的下降沿上数据改变,同时一位数据被存入移位寄存器。
SPI接口内部硬件图示:
最后,SPI接口的一个缺点:没有指定的流控制,没有应答机制确认是否接收到数据。

从机没有设置SPIBRR

应该是波特率不一致