关于SPI读W25Q128

2019-07-21 01:47发布

本帖最后由 kissmyass 于 2016-11-15 20:45 编辑

看了原子哥的SPI例程,想用模拟SPI的方式驱动W25Q128,发现了几个问题1:例程中的CS片选也是由stm32自动控制的吗?
2:启动传输时发送0xff为啥不用拉低片选?
3:原子哥的例程中使用的是模式3(SCK空闲时为高),想用w25q128的模式0(SCK空闲时为低),对照了MDK的逻辑分析仪感觉时序没问题啊,用为啥不行?还是我的程序问题?求解求解


贴上我的部分程序
#define CS PBout(12)
#define SCK PBout(13)
#define MISO PBin(14)
#define MOSI PBout(15)


void SPI2_Init(void)
{
         GPIO_InitTypeDef GPIO_InitStructure;


        RCC_APB2PeriphClockCmd(        RCC_APB2Periph_GPIOB, ENABLE );//PORTB时钟使能
         

        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13 | GPIO_Pin_15;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;  //PB13/14/15复用推挽输出
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
        GPIO_Init(GPIOB, &GPIO_InitStructure);//初始化GPIOB
        
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_14 ;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;  //PB13/14/15复用推挽输出
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
        GPIO_Init(GPIOB, &GPIO_InitStructure);
        
        SCK=0;
        delay_us(5);
        CS=0;
        delay_us(5);
        SPI2_ReadWriteByte(0xFF);//启动传输                 
delay_us(5);
        CS=1;

}


u8 SPI2_ReadWriteByte(u8 TxData)
{
        u8 rec=0,i;
        for(i=0;i<=7;i++)
        {               
                if(TxData&0X80)MOSI=1;
                else MOSI=0;
                TxData<<=1;
                delay_us(2);
                SCK=1;
                delay_us(2);
                SCK=0;
                delay_us(2);
                rec<<=1;
                rec|=MISO;               
        }
        delay_us(5);
        return rec;
}

发送0xff:
0xff.png

发送0x90:
0x90.png


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
10条回答
正点原子
1楼-- · 2019-07-21 04:29
1,因为并没有真正的发数据,只是提供时钟而已。
2,可能你还要修改采样点。
kissmyass
2楼-- · 2019-07-21 10:20
求解求解
kissmyass
3楼-- · 2019-07-21 12:47
正点原子 发表于 2016-11-15 14:27
1,因为并没有真正的发数据,只是提供时钟而已。
2,可能你还要修改采样点。

为啥没有真正发数据 原子哥能具体讲一下吗
kissmyass
4楼-- · 2019-07-21 16:31
 精彩回答 2  元偷偷看……
kissmyass
5楼-- · 2019-07-21 17:31
 精彩回答 2  元偷偷看……
sodermalm
6楼-- · 2019-07-21 20:06
楼主   问题解决了  应该在结贴的时候   说下解决方法   也好给我们新人一些参考学习

一周热门 更多>