野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8064|回复: 2

SPI读取flash_id的赋值问题,求指教

[复制链接]
发表于 2021-12-7 10:22:49 | 显示全部楼层 |阅读模式
本帖最后由 懒得取 于 2021-12-7 10:25 编辑

我在主函数中定义一个变量Flash_id,调用函数SPI_FLASH_ReadID(),将其返回值赋给给Flash_id,然后打印Flash_id,居然是0X00;然后我又试了一下直接打印SPI_FLASH_ReadID()的返回值,居然又成了0X522118,暂且不论0X522118这个值对不对吧,怎么明明是同样一个值,赋给变量和不赋给变量怎么就差这么多呢?求指教!
代码见下:
int main(void)
{       
        u32  Flash_id;      //定义变量存放Flash_id
        delay_init();                     //延时函数初始化          
        uart_init(115200);                 //串口初始化为115200
        LED_Init();                             //LED端口初始化
        SPI_FLASH_Init();
       
        Flash_id = SPI_FLASH_ReadID();
        printf("\r\n Flash_id = 0x%x \r\n\r\n",Flash_id);                        //打印Flash_id
        printf("\r\n Flash_id = 0x%x \r\n\r\n",SPI_FLASH_ReadID());     //打印SPI_FLASH_ReadID()返回值;
       
          while(1)
        {                 
                LED0=!LED0;                                                    
                delay_ms(1000);       
        }
}

串口打印结果:

Flash_id = 0x0
Flash_id = 0x522118
Flash_id = 0x0
Flash_id = 0x522118


回复

使用道具 举报

发表于 2021-12-12 09:11:38 | 显示全部楼层
会不会是优化等级的问题
回复 支持 反对

使用道具 举报

发表于 2021-12-20 13:27:33 | 显示全部楼层
读取函数 有确认 SPI外设、器件是否处于就绪再进行读写操作?如果SPI外设或器件不是就绪状态就会没读出值来。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-5-19 05:50 , Processed in 0.034729 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表