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]