单独看这两个函数似乎并没有问题,不过就W25Q16和您交流一下,确认你是否详细看过datasheet。
0.建议先试着 ...
感谢版主经验分享 stm1024 发表于 2018-3-26 11:23
单独看这两个函数似乎并没有问题,不过就W25Q16和您交流一下,确认你是否详细看过datasheet。
0.建议先试着 ...
读取W25Q16芯片ID时,MISO一直是高电平,请问版主什么什么原因?W25Q16芯片没有问题,用其他板子测试是好的 oceane 发表于 2018-3-26 18:23
读取W25Q16芯片ID时,MISO一直是高电平,请问版主什么什么原因?W25Q16芯片没有问题,用其他板子测试是好 ...
很正常,MISO平时就是高阻的。
估计是你的IO配置不正确,或者硬件有问题。 问题解决,感谢各位帮助及回复,自己记录一下:
void SPI_Delay(void)
{
uint16_t cnt = 5;
while(cnt--);
}
void W25Q16_SPI_WriteByte(uint8_t TXData)
{
uint8_t cnt;
for(cnt=0; cnt<8; cnt++)
{
W25Q16_SPI_SCKLOW;
SPI_Delay();
if(TXData & 0x80)
W25Q16_SPI_MOSIHIGH;
else
W25Q16_SPI_MOSILOW;
TXData <<= 1;
SPI_Delay();
W25Q16_SPI_SCKHIGH;
SPI_Delay();
}
}
uint8_t W25Q16_SPI_ReadByte(void)
{
uint8_t cnt;
uint8_t RxData = 0;
for(cnt=0; cnt<8; cnt++)
{
W25Q16_SPI_SCKLOW;
SPI_Delay();
RxData <<= 1;
if(W25Q16_MISO_READ)
{
RxData |= 0x01;
}
SPI_Delay();
W25Q16_SPI_SCKHIGH;
SPI_Delay();
}
return RxData;
}
感谢楼主分享! oceane 发表于 2018-3-29 12:41
问题解决,感谢各位帮助及回复,自己记录一下:
void SPI_Delay(void)
{
原因是什么?
页:
1
[2]