OpenEdv-开源电子网

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

原子大哥,读器件ID读出来的值不对啊,为什么我读出来的是16位的,本来是24位的,帮忙看一下程序哪里问题

[复制链接]

19

主题

38

帖子

0

精华

初级会员

Rank: 2

积分
135
金钱
135
注册时间
2013-4-30
在线时间
0 小时
发表于 2014-5-19 09:21:19 | 显示全部楼层 |阅读模式
5金钱
  u32 SPI_Flash_ReadJedecID(void)
{
u32 Temp = 0;  
SPI_FLASH_CS=0;    
SPIx_ReadWriteByte(0x9F);//发送读取ID命令    
      
Temp|=  SPIx_ReadWriteByte(0xFF)<<16;  
Temp|=  SPIx_ReadWriteByte(0xFF)<<8; 
Temp|=  SPIx_ReadWriteByte(0xFF) ; 
  
SPI_FLASH_CS=1;    
return Temp;

最佳答案

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

ID是16位啊... 读24位不可以高8位是0么? 0X00FFFF; 难道不等于:0XFFFF?
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-5-19 09:21:20 | 显示全部楼层
ID是16位啊...
读24位不可以高8位是0么?
0X00FFFF;
难道不等于:0XFFFF?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

120

主题

7878

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12012
金钱
12012
注册时间
2013-9-10
在线时间
427 小时
发表于 2014-5-19 13:01:43 | 显示全部楼层
你的什么FLASH芯片?
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复

使用道具 举报

19

主题

38

帖子

0

精华

初级会员

Rank: 2

积分
135
金钱
135
注册时间
2013-4-30
在线时间
0 小时
 楼主| 发表于 2014-5-19 14:06:26 | 显示全部楼层
回复【2楼】Badu_Space:
---------------------------------
W25X16
回复

使用道具 举报

120

主题

7878

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12012
金钱
12012
注册时间
2013-9-10
在线时间
427 小时
发表于 2014-5-19 17:57:20 | 显示全部楼层
回复【3楼】huayue:
---------------------------------
那是16位的吧
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复

使用道具 举报

19

主题

38

帖子

0

精华

初级会员

Rank: 2

积分
135
金钱
135
注册时间
2013-4-30
在线时间
0 小时
 楼主| 发表于 2014-5-19 23:22:16 | 显示全部楼层
回复【5楼】正点原子:
---------------------------------
设备ID是16位,我读的是JEDEC  ID 它是是24位啊 ,它有制造ID+存储ID+兼容性ID三部分组成,我上面的程序只能读出16位
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-5-19 23:36:56 | 显示全部楼层
回复【6楼】huayue:
---------------------------------
看数据手册,你JEDEC ID,正常应该是多少?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

19

主题

38

帖子

0

精华

初级会员

Rank: 2

积分
135
金钱
135
注册时间
2013-4-30
在线时间
0 小时
 楼主| 发表于 2014-5-19 23:42:51 | 显示全部楼层
回复【7楼】正点原子:
---------------------------------
正常应该是EF3015H,但是我读出来的是3015H
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-5-19 23:58:55 | 显示全部楼层
SPIx_ReadWriteByte(0xFF),返回值,是u16类型的
<<16会越界。
改为:
Temp=  SPIx_ReadWriteByte(0xFF);  
Temp<<=16;
Temp|=  SPIx_ReadWriteByte(0xFF)<<8; 
Temp|=  SPIx_ReadWriteByte(0xFF) ;

测试下。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-7-8 05:33

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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