打印
[ZLG-MCU]

LPC1114 SPI同时收发的疑惑

[复制链接]
3397|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
love_life|  楼主 | 2010-5-20 12:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在例程中:SPI0是主机,SPI1是从机
void SPI1_Isr (void)
{
    RcvData = SSP1DR;                                                   /*  接收数据                    */
    RcvFlag = 0x01;                                                     /*  接收到新数据                */
    SSP1ICR = 0x03;                                                     /*  清除标志位                  */
}

uint8 SPI0_SendData (uint8 data)
{

    SSP0DR = data;
    while ((SSP0SR & 0x01) == 0) {                                      /*  等待TFE置位,即发送FIFO空   */

    }
    return(SSP0DR);
}

可以看出在发送程序里面,等数据发出后,再次读了一下SSP0DR,这个也是发的同时接到的数值,但是在SPI1的接受中断里面并没有对SSP1DR进行赋值,请问对SPI1赋值的时机在哪里?(也就是说当时SPI0发出数据后读出的数据时哪里来的)谢谢

相关帖子

沙发
OLIVERR| | 2010-5-20 12:29 | 只看该作者
是SPI的FIFO中的值,我觉得是那样!

使用特权

评论回复
板凳
chuxh| | 2010-5-24 21:20 | 只看该作者
SPI是全双工通信协议,此例程中SPI0是作为主机发送数据的,SPI0发出数据后读出的数据是读的MISO上面的数据。

使用特权

评论回复
地板
虎虎生威| | 2010-5-24 21:21 | 只看该作者
由于此例程从机并没有发送数据,因此读回来的数据为0xFF。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

32

主题

636

帖子

1

粉丝