OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 7786|回复: 9

F103精英板,读取SPI—flash的8位Device ID没问题,读取JEDEC ID和手册不一致

[复制链接]

1

主题

3

帖子

0

精华

新手上路

积分
26
金钱
26
注册时间
2022-10-27
在线时间
4 小时
发表于 2022-12-9 20:52:14 | 显示全部楼层 |阅读模式
1金钱
抱歉,研究半天没能发出来图片。

uint8_t SPI_FLASH_WriteByte(uint8_t data)
{
        u8 i = 0
        while(SPI_I2S_GetFlagStatus(SPI_FLASH,SPI_I2S_FLAG_TXE) == RESET)
        {
              i++;
              if(i>200) return 0;
         };
        SPI_I2S_SendData(SPI_FLASH,data);
        i = 0;
        while(SPI_I2S_GetFlagStatus(SPI_FLASH,SPI_I2S_FLAG_RXNE) == RESET)
        {
              i++;
              if(i>200) return 0;
         };
        return SPI_I2S_ReceiveData(SPI_FLASH);
}


uint8_t SPI_Get_JEDEC_ID()
{
        u8 rec = 0;
        SPI_FLASH_CS_LOW;
        SPI_FLASH_WriteByte(0xAB);
        SPI_FLASH_WriteByte(DUMMY);
        SPI_FLASH_WriteByte(DUMMY);
        SPI_FLASH_WriteByte(DUMMY);       
        return SPI_FLASH_WriteByte(DUMMY);

}


这样用串口打印出来的Device ID和手册一样,是0x17;

现在读取JEDEC ID
uint32_t SPI_Get_JEDEC_ID()
{
        u32 rec = 0;
        SPI_FLASH_WriteByte(0x9F);
        rec = SPI_FLASH_WriteByte(DUMMY);//SPI_FLASH_ReceiveByte();
        rec <<= 8;
        rec |= SPI_FLASH_WriteByte(DUMMY);//SPI_FLASH_ReceiveByte();
        rec <<= 8;
        rec |= SPI_FLASH_WriteByte(DUMMY);//SPI_FLASH_ReceiveByte();
        SPI_FLASH_CS_HIGH;
        return rec;
}

用串口读取的是0x522118,实际手册上应该是0xEF4018,实在费解,希望大佬指点一下,是否是读取方式有问题



最佳答案

查看完整内容[请看2#楼]

怎么删帖啊,找到原因了
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

1

主题

3

帖子

0

精华

新手上路

积分
26
金钱
26
注册时间
2022-10-27
在线时间
4 小时
 楼主| 发表于 2022-12-9 20:52:15 | 显示全部楼层
怎么删帖啊,找到原因了
回复

使用道具 举报

1

主题

3

帖子

0

精华

新手上路

积分
26
金钱
26
注册时间
2022-10-27
在线时间
4 小时
 楼主| 发表于 2022-12-9 20:55:20 | 显示全部楼层
程序赋值粘贴改动中有几处错误,片选信号先是拉低SPI_FLASH_CS_LOW,最后拉高SPI_FLASH_CS_HIGH,实际运行中代码加上了
回复

使用道具 举报

0

主题

3

帖子

0

精华

新手入门

积分
16
金钱
16
注册时间
2023-3-7
在线时间
2 小时
发表于 2023-4-5 19:01:26 | 显示全部楼层
兄弟我也是和你一样522118,求问是什么原因!!!!!!!!!
回复

使用道具 举报

0

主题

3

帖子

0

精华

新手入门

积分
16
金钱
16
注册时间
2023-3-7
在线时间
2 小时
发表于 2023-4-5 19:30:14 | 显示全部楼层
chaosi 发表于 2023-4-5 19:01
兄弟我也是和你一样522118,求问是什么原因!!!!!!!!!

我知道了,芯片手册看错了,被自己气晕
回复

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
6
金钱
6
注册时间
2023-4-7
在线时间
2 小时
发表于 2023-4-7 14:43:05 | 显示全部楼层
chaosi 发表于 2023-4-5 19:30
我知道了,芯片手册看错了,被自己气晕

我的也是522118,请教一下兄弟你是怎么解决的
回复

使用道具 举报

0

主题

3

帖子

0

精华

新手入门

积分
16
金钱
16
注册时间
2023-3-7
在线时间
2 小时
发表于 2023-4-13 20:27:26 | 显示全部楼层
cxdc 发表于 2023-4-7 14:43
我的也是522118,请教一下兄弟你是怎么解决的

你应该看的是旧版原理图,芯片型号不一样返回id不一样,你得到的结果其实是对的
回复

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
6
金钱
6
注册时间
2023-4-7
在线时间
2 小时
发表于 2023-4-14 16:30:05 | 显示全部楼层
chaosi 发表于 2023-4-13 20:27
你应该看的是旧版原理图,芯片型号不一样返回id不一样,你得到的结果其实是对的

好的,感谢
回复

使用道具 举报

2

主题

8

帖子

0

精华

初级会员

Rank: 2

积分
53
金钱
53
注册时间
2023-11-3
在线时间
3 小时
发表于 2023-11-3 16:02:12 | 显示全部楼层
大神什么原因啊,我读id全是ff
回复

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
8
金钱
8
注册时间
2024-1-29
在线时间
2 小时
发表于 2024-1-29 16:16:11 | 显示全部楼层
tainanle 发表于 2023-11-3 16:02
大神什么原因啊,我读id全是ff

你解决了没,我的id也全是ff
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-2-24 06:38

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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