OpenEdv-开源电子网

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

stm32f407 25q128数据刷入

[复制链接]

3

主题

20

帖子

0

精华

初级会员

Rank: 2

积分
100
金钱
100
注册时间
2020-7-29
在线时间
28 小时
发表于 2022-5-30 17:05:14 | 显示全部楼层 |阅读模式
我在开发板(探索者)上1s内刷入一条数据 每条数据16个字节
7861   1900-01-01 00:00:00,42949672.00,42949672.00,-0.01,65535
7862   1900-01-01 00:00:00,42949672.00,42949672.00,-0.01,65535
7863   2022-05-30 15:08:13,29.24,30.93,1.92,500
7864   2022-05-30 15:08:14,29.24,30.93,1.93,500
7865   2022-05-30 15:08:15,29.24,30.94,1.95,500
7866   2022-05-30 15:08:16,29.24,30.94,1.96,500
7867   2022-05-30 15:08:17,29.24,30.94,1.96,500
7868   2022-05-30 15:08:18,29.25,30.94,1.96,500


但是当数据到7860条之后(第30个扇区) 下一扇区开始两条数据是无法写入的。(没写成功)
每次写入前我都会全部清除当前扇区的内容(成功的)
这个是不是由于我程序上的时间间隔太短导致的。


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

使用道具 举报

3

主题

20

帖子

0

精华

初级会员

Rank: 2

积分
100
金钱
100
注册时间
2020-7-29
在线时间
28 小时
 楼主| 发表于 2022-5-30 17:09:56 | 显示全部楼层
void save_history_data()//历史数据存储
{                       
                  //将当前数据记录到flash当中

                W25QXX_Write_NoCheck((u8*)(&history_data),history_address,16);                //

                        history_address=history_address+16;//下一组将要保存数据的地址
                        history_number=history_number+1;   //当前已保存历史数据条数
                       
             if((history_number%256)==0)//一组扇区存满了
                        {
                                W25QXX_Erase_Sector(history_address/4096);//擦出下一组数据
                        }
回复 支持 反对

使用道具 举报

4

主题

97

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3686
金钱
3686
注册时间
2018-5-25
在线时间
851 小时
发表于 2022-5-30 17:26:58 | 显示全部楼层
直接测试第30个扇区不就行了么,先擦除第30个扇区 ,然后写入数据,然后读出数据比较,就可以排除扇区是否有问题了
回复 支持 反对

使用道具 举报

3

主题

20

帖子

0

精华

初级会员

Rank: 2

积分
100
金钱
100
注册时间
2020-7-29
在线时间
28 小时
 楼主| 发表于 2022-5-30 18:03:22 | 显示全部楼层
zdes33ss 发表于 2022-5-30 17:26
直接测试第30个扇区不就行了么,先擦除第30个扇区 ,然后写入数据,然后读出数据比较,就可以排除扇区是否 ...

目前30之后的扇区都有这个问题,30之前的没有。
回复 支持 反对

使用道具 举报

4

主题

97

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3686
金钱
3686
注册时间
2018-5-25
在线时间
851 小时
发表于 2022-5-31 08:59:51 | 显示全部楼层
jjxuaf 发表于 2022-5-30 18:03
目前30之后的扇区都有这个问题,30之前的没有。

那估计你驱动有问题吧,容量没设置对吧
回复 支持 反对

使用道具 举报

3

主题

20

帖子

0

精华

初级会员

Rank: 2

积分
100
金钱
100
注册时间
2020-7-29
在线时间
28 小时
 楼主| 发表于 2022-5-31 10:43:18 | 显示全部楼层
zdes33ss 发表于 2022-5-31 08:59
那估计你驱动有问题吧,容量没设置对吧

我这个原子程序上测试的,容量配置的话貌似没有涉及吧。往对应地址写对应数据而已。我还真没看到哪边能设置容量的
回复 支持 反对

使用道具 举报

3

主题

20

帖子

0

精华

初级会员

Rank: 2

积分
100
金钱
100
注册时间
2020-7-29
在线时间
28 小时
 楼主| 发表于 2022-5-31 14:40:29 | 显示全部楼层
zdes33ss 发表于 2022-5-30 17:26
直接测试第30个扇区不就行了么,先擦除第30个扇区 ,然后写入数据,然后读出数据比较,就可以排除扇区是否 ...

测试过了,直接写入是没问题的
回复 支持 反对

使用道具 举报

3

主题

20

帖子

0

精华

初级会员

Rank: 2

积分
100
金钱
100
注册时间
2020-7-29
在线时间
28 小时
 楼主| 发表于 2022-6-1 09:40:30 | 显示全部楼层
jjxuaf 发表于 2022-5-31 14:40
测试过了,直接写入是没问题的

现在问题竟然不复现了,还在测试中。
回复 支持 反对

使用道具 举报

3

主题

20

帖子

0

精华

初级会员

Rank: 2

积分
100
金钱
100
注册时间
2020-7-29
在线时间
28 小时
 楼主| 发表于 2022-12-8 14:01:26 | 显示全部楼层
问题是这样的读写驱动没问题,我数据记录在24c16当中,当板子断电时24c16当中增加了一条数据记录但是25q128当中还没有写入数据,所以产生了数据没有写入的情况。
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-2-24 23:33

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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