SPI与器件通信读回数据全都是0

2019-07-21 01:33发布

STM32用SPI与器件通信时,采用全双工主模式,但是读回的数据总是0,甚至在器件没有上电的时候,也会是0,这是什么情况啊,如果是将SPI那四根线拔了,就是0XFF。搞不懂什么情况。。。。。。。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
8条回答
MDZZYUE
2019-07-21 14:17
csmjmcc 发表于 2017-12-29 10:53
贴出程序和器件名称,才能解答

我用的器件是epc610,比较偏的一个,用的SPI2,工作于主模式下的全双工,发送读取函数就是


u16 SPI2_ReadWriteByte(u16 TxData)
{               
        u8 retry=0;                                        
        while (SPI_I2S_GetFlagStatus(SPI2, SPI_I2S_FLAG_TXE) == RESET)
                {
                retry++;
                if(retry>200) return 0;
          printf ("%s ", "regular write always busy!  RETRY SEND "  );       
                }                          
        SPI_I2S_SendData(SPI2, TxData); //í¨1yíaéèSPIx·¢Ëíò»¸öêy¾Y
        retry=0;
               

        while (SPI_I2S_GetFlagStatus(SPI2, SPI_I2S_FLAG_RXNE) == RESET)
                {
                retry++;
                if(retry>200)return 0;
                printf ("%s ", "regular write always busy!  RETRY RECIVE"  );       
                }                                                              
          return SPI_I2S_ReceiveData(SPI2);
   printf ("%s ", "regular write always busy!"  );                       
}

就是正点原子的代码啊

一周热门 更多>