hpdell 发表于 2013-9-13 13:38:47

stc spi 读出SST25VF080的数据不对???

本帖最后由 hpdell 于 2013-9-13 13:40 编辑

请教下,我使用stc的硬件读sst25vf080芯片里面的数据,结果不对,
但是使用模拟读出来的数据时正确的,请问是什么原因啊??????????????


单片机:stc12le5a60s2

sbit SPI_CS = P1^4;

#defineSPI_CS_HSPI_CS=1
#defineSPI_CS_LSPI_CS=0


void stc_SpiInit()
{

                SPDAT = 0;                  //initial SPI data

                //SPCTL = 0xdc;                //c0CPU_CLK/4,时钟前沿为下降沿,后沿采样,主模式,最高位在前,SPI使能,SPICLK空闲为高电平

                SPSTAT = SPIF | WCOL;      //SPDAT.7和SPDAT.6写11,可以将中断标志清零。注意是写1才清零
               
                SPCTL = SPEN | MSTR | SSIG | CPOL | CPHA | SPSPEEDHH;//c0CPU_CLK/4,时钟前沿为下降沿,后沿采样,主模式,最高位在前,SPI使能,SPICLK空闲为高电平
       
                //IE2 |= ESPI;                //允许SPI 中断控制位
}



unsigned char STC_SPI_ReadWriteByte(unsigned char SendData)
{
        SPDAT= SendData;                                                 //将串口接收的数据装入SPI数据寄存器
        while(!STC_SPI_STATUS);                        //等待发送完毕
        SPSTAT = SPIF | WCOL;       //清除中断标志,和写冲突标志,注意是对应位写1才能清零
        return SPDAT;

}










页: [1]
查看完整版本: stc spi 读出SST25VF080的数据不对???