OpenEdv-开源电子网

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

stm32f1 FLASH模拟EEPROM实验例程的bug (精英板)HAL库版本_STM32F103ZET6

[复制链接]

6

主题

9

帖子

0

精华

初级会员

Rank: 2

积分
101
金钱
101
注册时间
2019-5-8
在线时间
21 小时
发表于 2021-2-25 10:24:32 | 显示全部楼层 |阅读模式
例程里SIZE为数组长度,即u8的个数,但使用的STMFLASH_Read(FLASH_SAVE_ADDR,(u16*)datatemp,SIZE);及STMFLASH_Write(FLASH_SAVE_ADDR,(u16*)TEXT_Buffer,SIZE);函数参数里的第三个参数是以u16的个数为单位的。所以虽然例程运行一个字符串看起来没啥问题,实际上会操作到datatemp数组外的内存,这是非常危险的。

例程的写法

例程的写法

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

使用道具 举报

3

主题

821

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3329
金钱
3329
注册时间
2011-11-10
在线时间
207 小时
发表于 2021-2-25 10:49:33 | 显示全部楼层
你是个细心人!这样的程序任意改变其他变量的值导致程序出错。
回复 支持 1 反对 0

使用道具 举报

0

主题

10

帖子

0

精华

初级会员

Rank: 2

积分
57
金钱
57
注册时间
2021-10-15
在线时间
13 小时
发表于 2021-12-29 16:32:32 | 显示全部楼层
没看懂,能否再详细些
回复 支持 反对

使用道具 举报

1

主题

12

帖子

0

精华

新手上路

积分
37
金钱
37
注册时间
2020-10-25
在线时间
8 小时
发表于 2022-4-18 14:39:21 | 显示全部楼层
本帖最后由 dengchuang08251 于 2022-4-18 14:43 编辑

确实很危险,多写了一倍的字节,而且显示出来的字符串上也不对了!
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-24 10:49

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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