打印

GD32F305 上电 读写25q32 flash 失败

[复制链接]
1032|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
ASCC|  楼主 | 2020-7-14 22:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
上电后400ms后读写25q32  
调试状态下读写都正常,正式运行时读数据失败,写数据一直卡死,读写程序是stm32上移过来的,在stm32上运行正常

void flash_gpio_config(void)
{
               
       
                //时钟
                rcu_periph_clock_enable(RCU_GPIOB);
    rcu_periph_clock_enable(RCU_SPI2);
       
                //关闭 JTAG
                gpio_pin_remap_config(GPIO_SWJ_SWDPENABLE_REMAP,ENABLE);
               
    /* SPI2 GPIO config: NSS/PB9, SCK/PB3, MISO/PB4, MOSI/PB5 */
    gpio_init(GPIOB, GPIO_MODE_IN_FLOATING, GPIO_OSPEED_50MHZ, GPIO_PIN_4);
    gpio_init(GPIOB, GPIO_MODE_AF_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_3 | GPIO_PIN_5);
    gpio_init(GPIOB, GPIO_MODE_OUT_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_9);
       
          
                SPI_FLASH_CS_LOW();

}
void spi_config(void)
{
    spi_parameter_struct spi_init_struct;

    /* SPI0 parameter config */
    spi_init_struct.trans_mode           = SPI_TRANSMODE_FULLDUPLEX;//全双工模式
    spi_init_struct.device_mode          = SPI_MASTER;                                        //工作模式为主模式
    spi_init_struct.frame_size           = SPI_FRAMESIZE_8BIT;    //SPI发送接收8位帧结构
    spi_init_struct.clock_polarity_phase = SPI_CK_PL_HIGH_PH_2EDGE;//空闲时钟为高电平,第二个跳变沿采取数据
    spi_init_struct.nss                  = SPI_NSS_SOFT;        //软件复位
    spi_init_struct.prescale             = SPI_PSC_128;   //波特率预分频值
    spi_init_struct.endian               = SPI_ENDIAN_MSB;//从MSB位开始传输
    spi_init(SPI2, &spi_init_struct);
       
                spi_enable(SPI2);//使能spi
       
}

void flash_Config(void)
{
        flash_gpio_config();
        spi_config();
       
        SPI_FLASH_SendByte(0xFF);
        SPI_FLASH_CS_HIGH();
}


使用特权

评论回复
沙发
zeshoufx| | 2020-7-15 08:36 | 只看该作者
例程里的spi型flash读写程序没问题

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

16

帖子

0

粉丝