[ZLG-MCU] LPC1114 SPI同时收发的疑惑

[复制链接]
4286|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

粉丝
快速回复 在线客服 返回列表 返回顶部