打印
[STM32L1]

擦除后全是是0x00

[复制链接]
1410|33
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zwll|  楼主 | 2021-6-17 22:12 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
STM32L151为何FLASH

使用特权

评论回复
沙发
supernan| | 2021-6-17 22:15 | 只看该作者
楼主详细说说怎么回事啊,这么说太笼统了

使用特权

评论回复
板凳
zwll|  楼主 | 2021-6-17 22:17 | 只看该作者
以前记得擦除后是0xFF的,,今天调试发现,STM32L151调用官方库函数FLASH擦除也没有报错啊,但数据却全是0x00。。。

使用特权

评论回复
地板
zwll|  楼主 | 2021-6-17 22:18 | 只看该作者
但是编程数据写进去是可以的,而且写数据也是正确的。。。奇怪了

使用特权

评论回复
5
chuxh| | 2021-6-17 22:20 | 只看该作者
用户手册《STM32L1xxx Reference Manual.pdf》和数据手册《STM32L151x&L152x.pdf》多看看

使用特权

评论回复
6
zwll|  楼主 | 2021-6-17 22:30 | 只看该作者
看了,没有找到任何一个地方说明,,FLASH擦除后是0x00还是0xFF。。。

//Erase the sector(total 16 pages)
HAL_FLASH_Unlock();
EraseInitStruct.TypeErase   = FLASH_TYPEERASE_PAGES;
EraseInitStruct.PageAddress = USER_DATA_ADDRESS_SECTOR1 + (CurSector-1)*0x1000;
EraseInitStruct.NbPages     = 16;
HAL_FLASHEx_Erase(&EraseInitStruct, &PAGEError);
HAL_FLASH_Lock();

使用特权

评论回复
7
dingy| | 2021-6-17 22:30 | 只看该作者
截图看看

使用特权

评论回复
8
zwll|  楼主 | 2021-6-17 22:32 | 只看该作者

使用特权

评论回复
9
zwll|  楼主 | 2021-6-17 22:35 | 只看该作者
写进去是对的,,读出来的数据,有时候可以读对,,有时候读的数据是错的。

用STM32L512-Discovery开发板测试,,发现擦除后,,ST-LINK监控FLASH也全是0值

使用特权

评论回复
10
zwll|  楼主 | 2021-6-17 22:37 | 只看该作者

使用特权

评论回复
11
chenjunt| | 2021-6-17 22:39 | 只看该作者

难道是设置了读保护了?

使用特权

评论回复
12
supernan| | 2021-6-17 22:41 | 只看该作者
STM32 ST-LINK Utility试过没、?

使用特权

评论回复
13
zwll|  楼主 | 2021-6-17 22:43 | 只看该作者
没有读写保护,,我另一个地方用到flash读写,,是对的

使用特权

评论回复
14
zwll|  楼主 | 2021-6-17 22:45 | 只看该作者
请教大牛们?怎么解释?JLINK监控FLASH数据,,写进去是对的,,读出来的数据,有时候可以读对,,有时候读的数据是错的。

使用特权

评论回复
15
zwll|  楼主 | 2021-6-17 22:47 | 只看该作者
不管是J-LINK的JFLASH,还是ST-LINK Utility,,,擦除之后都是0x00,,怀疑是我们的板子有问题,,结果STM32L152-Discpvery开发板也是一样的

使用特权

评论回复
16
chuxh| | 2021-6-17 22:53 | 只看该作者
估计L系列的FLASH结构跟其它系列不一样的,类似于EEPROM的,所以擦掉后是00,不是FF的

使用特权

评论回复
17
stly| | 2021-6-17 22:55 | 只看该作者
RM0038提到L系列的FLASH和EEPROM属于同一个模块 NVM module 管理的

使用特权

评论回复
18
chenjunt| | 2021-6-17 22:57 | 只看该作者
另外按这么理解,FLASH应该也是可以不擦除直接写的,不知道可不可以......

使用特权

评论回复
19
heweibig| | 2021-6-17 22:59 | 只看该作者
查了一下代码,EEPROM的写入不是00的话,还是要先擦一遍再写入的

使用特权

评论回复
20
zwll|  楼主 | 2021-6-17 23:01 | 只看该作者
这个问题还没有解决,,,,FLASH要先擦后写才行,,擦除后都是0xFF,,我用J-LINK和STLINK直接擦除,,都是0x00,,

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

885

主题

11314

帖子

5

粉丝