OpenEdv-开源电子网

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

为什么我的板子至少连续读取两次, 才能得到正确的FLASH的ID

[复制链接]

0

主题

2

帖子

0

精华

新手入门

积分
17
金钱
17
注册时间
2022-3-5
在线时间
5 小时
发表于 2022-3-7 23:16:56 | 显示全部楼层 |阅读模式
1金钱
本帖最后由 haNNNNNNNd 于 2022-3-7 23:41 编辑

使用的是原子精英板,FLASH芯片是NM25Q128。只读取一次JEDEC_ID,得到的结果是0。连续读取两次,得到的结果是522118。有没有懂的朋友解答一下
main函数:
main.png

id读取函数:
read_id.png



正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

12

主题

3344

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
8465
金钱
8465
注册时间
2020-5-11
在线时间
3904 小时
发表于 2022-3-8 10:56:17 | 显示全部楼层
我猜一下,单片机运行太快,上电马上就能运行,而FLASH上电后需要一段时间才能响应指令。
建议读ID前加延时。
专治疑难杂症
回复

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
17
金钱
17
注册时间
2022-3-5
在线时间
5 小时
 楼主| 发表于 2022-3-8 15:49:00 | 显示全部楼层
LcwSwust 发表于 2022-3-8 10:56
我猜一下,单片机运行太快,上电马上就能运行,而FLASH上电后需要一段时间才能响应指令。
建议读ID前加延 ...

好像不是这个原因,加了延时还是返回错误的id
回复

使用道具 举报

12

主题

3344

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
8465
金钱
8465
注册时间
2020-5-11
在线时间
3904 小时
发表于 2022-3-8 16:02:30 | 显示全部楼层
haNNNNNNNd 发表于 2022-3-8 15:49
好像不是这个原因,加了延时还是返回错误的id

哦,那可能是单片机复位时CS脚一直是低电平,第一条指令之前就混入了多余的东西。
建议初始化SPI后让CS脚置高。
你的CS脚在哪初始化的?
专治疑难杂症
回复

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
17
金钱
17
注册时间
2022-3-5
在线时间
5 小时
 楼主| 发表于 2022-3-8 18:31:26 | 显示全部楼层
LcwSwust 发表于 2022-3-8 16:02
哦,那可能是单片机复位时CS脚一直是低电平,第一条指令之前就混入了多余的东西。
建议初始化SPI后让CS ...

初始化GPIO后就用GPIO_SetBits函数拉高了CS引脚了,所以就很奇怪找不到原因
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-2-28 00:06

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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