oceane 发表于 2018-3-26 14:41:50

stm1024 发表于 2018-3-26 11:23
单独看这两个函数似乎并没有问题,不过就W25Q16和您交流一下,确认你是否详细看过datasheet。
0.建议先试着 ...

感谢版主经验分享

oceane 发表于 2018-3-26 18:23:18

stm1024 发表于 2018-3-26 11:23
单独看这两个函数似乎并没有问题,不过就W25Q16和您交流一下,确认你是否详细看过datasheet。
0.建议先试着 ...

读取W25Q16芯片ID时,MISO一直是高电平,请问版主什么什么原因?W25Q16芯片没有问题,用其他板子测试是好的

无薪税绵 发表于 2018-3-27 09:55:53

oceane 发表于 2018-3-26 18:23
读取W25Q16芯片ID时,MISO一直是高电平,请问版主什么什么原因?W25Q16芯片没有问题,用其他板子测试是好 ...

很正常,MISO平时就是高阻的。
估计是你的IO配置不正确,或者硬件有问题。

oceane 发表于 2018-3-29 12:41:19

问题解决,感谢各位帮助及回复,自己记录一下:
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;
        }

@羁绊(‧‧)nnn 发表于 2018-8-5 17:58:14

感谢楼主分享!

wwwheihei 发表于 2018-8-6 17:39:36

oceane 发表于 2018-3-29 12:41
问题解决,感谢各位帮助及回复,自己记录一下:
void SPI_Delay(void)
{


原因是什么?
页: 1 [2]
查看完整版本: STM32L152普通I/O模拟SPI驱动W25Q16问题