AVR控制W25X16读写不一致

2019-03-24 20:56发布

我用的是AVR单片机控制的W25X16读写的结果不一致,找不到原因,我自认为跟SPI的设置有关系 void SPI_Init(void)
{
 SPI_PORT = (1 << SPI_SS) | (1 << SPI_MISO) | (0 << SPI_SCK);//将SS置位输出拉高,MISO输入带上拉
 SPI_DDR = (1 << SPI_SS) | (1 << SPI_MOSI) | (1 << SPI_SCK);//将SS SCK MOSI置为输出
 SPI_DDR = (0 << SPI_MISO);//MOSI置为输入
 SPCR = (1<<SPIE)|(1<<SPE)| (1<<SPR0);//使能SPI 主机模式,设置时钟速率为fck/16   SPI_Write_Disable();  
}
char SPI_Write(char cData)
{
SPCR = (1<<MSTR);
SPDR = cData;//启动数据传输
while(!(SPSR & (1 << SPIF)));
}
char SPI_Read()
{
while(!(SPSR & (1 << SPIF)));
return SPDR;//返回数据
} 此帖出自小平头技术问答
0条回答

一周热门 更多>