This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

dsp2812 spi 通讯问题



spi外接了flash,想完成对flash的读写,用官方自带的例程spi_loopback 调试通过,仔细看了下代码,这个历程前面是对spi的初始化,然后是下面几句代码:

for(;;)
   {    
     SpiaRegs.SPITXBUF=sdata;                                                           // Transmit data
     while(SpiaRegs.SPIFFRX.bit.RXFFST !=1) { }         // Wait until data is received
     rdata = SpiaRegs.SPIRXBUF;                                    // Check against sent data
     if(rdata != sdata) error();
     sdata++;
   }

有个疑问:spi写方式 是发命令字+地址+数据 ,读也类似,这个例程怎么没有地址的信息啊,这是在测什么?是在访问spi flash吗?这个例程跑通能说明前面的spi初始化是正确的吗?求解???

  • for(;;)

      {    

        SpiaRegs.SPITXBUF=sdata;                                                           // Transmit data

    //发送数据,数据是sdata,发送到SPITXBUF中

        while(SpiaRegs.SPIFFRX.bit.RXFFST !=1) { }         // Wait until data is received

    //因为是Loop Back,接收端会收到发送端发过来的数据,通过FIFO的内部存储的Byte数量可以判断是否已经有数据接收到

        rdata = SpiaRegs.SPIRXBUF;                                    // Check against sent data

    //将数据读出

        if(rdata != sdata) error();

    //检测接收的数据是否和发送的数据相符,不符合,则跳到error函数

        sdata++;

    //sdata加一

      }