OpenEdv-开源电子网

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

flash写入函数无法写入完整数据

[复制链接]

0

主题

7

帖子

0

精华

新手上路

积分
47
金钱
47
注册时间
2020-3-18
在线时间
15 小时
发表于 2020-4-9 09:49:19 | 显示全部楼层 |阅读模式
3金钱
本帖最后由 枫桥骤雨 于 2020-4-9 09:55 编辑

写入4K多的数据的时候发现个问题。原子哥原本函数无法完整写入所有数据,总有数据丢失,修改了下原函数。我的理解是的时是写入时的地址偏移应该是双字所以乘了2,大神们帮忙看下我的理解对不对
STMFLASH_Write(FLASH_WAVE_ADDR,(u16 *)&Cache.Ware_Record,sizeof(Cache.Ware_Record)/2);是通过结构体传入的

1.png
批注 2020-04-09 093820.png
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

4

主题

29

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
254
金钱
254
注册时间
2018-9-23
在线时间
67 小时
发表于 2020-4-9 12:17:57 | 显示全部楼层
哥们儿 太棒了,看了你的帖子解决了困扰我多天的问题
回复

使用道具 举报

4

主题

29

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
254
金钱
254
注册时间
2018-9-23
在线时间
67 小时
发表于 2020-4-9 12:20:11 | 显示全部楼层
太感谢了  
回复

使用道具 举报

51

主题

2166

帖子

2

精华

论坛元老

Rank: 8Rank: 8

积分
10653
金钱
10653
注册时间
2017-4-14
在线时间
2780 小时
发表于 2020-4-9 17:44:03 | 显示全部楼层
本帖最后由 nashui_sx 于 2020-4-9 17:45 编辑

函数是u16指针 估计你传的是u8  u8用的多,类似下面二次封装下就好了
  1. void FLASH_EEPROM_Read_u8(u8 *pBuffer,u32 ReadAddr,u16 NumToRead)  
  2. {
  3.         STM_FLASH_Read_u16((u16*)pBuffer,ReadAddr+FLASH_EEPROM_ADDR,(NumToRead%2)?(NumToRead/2+1):(NumToRead/2));
  4. }
复制代码


回复

使用道具 举报

0

主题

7

帖子

0

精华

新手上路

积分
47
金钱
47
注册时间
2020-3-18
在线时间
15 小时
 楼主| 发表于 2020-4-10 14:57:03 | 显示全部楼层
nashui_sx 发表于 2020-4-9 17:44
函数是u16指针 估计你传的是u8  u8用的多,类似下面二次封装下就好了

原本的写入函数是有小问题的吗,还是只需要二次封装下原函数就不用改了呢
回复

使用道具 举报

51

主题

2166

帖子

2

精华

论坛元老

Rank: 8Rank: 8

积分
10653
金钱
10653
注册时间
2017-4-14
在线时间
2780 小时
发表于 2020-4-10 15:02:35 来自手机 | 显示全部楼层
枫桥骤雨 发表于 2020-4-10 14:57
原本的写入函数是有小问题的吗,还是只需要二次封装下原函数就不用改了呢

二次封装一下就好了,要么你就用u16的数组
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-25 03:11

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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