OpenEdv-开源电子网

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

【求助】STM32F1XX 内部FLASH 模拟EEPROM 有图有真相

[复制链接]

16

主题

105

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
374
金钱
374
注册时间
2016-4-4
在线时间
54 小时
发表于 2016-4-4 16:07:33 | 显示全部楼层 |阅读模式
1金钱
引用原子哥的代码stmflash.c 和stm32flash.h 程序如下
程序一:
#include "stm32f10x.h"
#include "usart.h"
#include "stmflash.h"

const u8 TEXT_Buffer[]={"I like MCU"};
#define SIZE sizeof(TEXT_Buffer)                                           //数组长度
#define FLASH_SAVE_ADDR  0X08070000                                 //设置FLASH 保存地址(必须为偶数,且其值要大于本代码所占用FLASH的大小+0X08000000)

int main(void)
{

        u8 datatemp[SIZE];
       
        USART1_Configuration(115200);
        printf("Uart1 is OK!!!\r\n");
       
        STMFLASH_Write(FLASH_SAVE_ADDR,(u16*)TEXT_Buffer,SIZE );
        printf("FLASH Write Finished!\r\n");

        printf("存入数据为:%s        \r\n",TEXT_Buffer);

        STMFLASH_Read(FLASH_SAVE_ADDR,(u16*)datatemp,SIZE );
        printf("\r\n 读取数据为:         %s \r\n",datatemp);
         
while(1);
}

程序一运行结果:
Uart1 is OK!!!

FLASH Write Finished!

存入数据为:I like MCU       

读取数据为:         I like MCU

程序二
#include "stm32f10x.h"
#include "usart.h"
#include "stmflash.h"

const u8 TEXT_Buffer[]={"I like MCU"};
#define SIZE sizeof(TEXT_Buffer)                                           //数组长度
#define FLASH_SAVE_ADDR  0X08070000                                 //设置FLASH 保存地址(必须为偶数,且其值要大于本代码所占用FLASH的大小+0X08000000)

int main(void)
{

        u8 datatemp[SIZE];
       
        USART1_Configuration(115200);
        printf("  Uart1 is OK!!!\r\n");
       
//        STMFLASH_Write(FLASH_SAVE_ADDR,(u16*)TEXT_Buffer,SIZE);
//        printf("FLASH Write Finished!\r\n");

//        printf("存入数据为:%s        \r\n",TEXT_Buffer);

        STMFLASH_Read(FLASH_SAVE_ADDR,(u16*)datatemp,SIZE);
        printf("\r\n 读取数据为:         %s \r\n",datatemp);

            while(1);

}

程序二运行结果
Uart1 is OK!!!



读取数据为:        

stmflash.rar

3.13 KB, 下载次数: 477

最佳答案

查看完整内容[请看2#楼]

VE是512K。 那你写入应该是没问题的。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2016-4-4 16:07:34 | 显示全部楼层
qq997758497 发表于 2016-4-12 09:53
用的是STM32F103VET6  自顶!

VE是512K。
那你写入应该是没问题的。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

16

主题

105

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
374
金钱
374
注册时间
2016-4-4
在线时间
54 小时
 楼主| 发表于 2016-4-4 16:09:23 | 显示全部楼层
下面有写内容没有发布出来

程序二下进去 读取的内容乱码
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2016-4-6 22:53:18 | 显示全部楼层
你的芯片有多少flash?
回复

使用道具 举报

30

主题

705

帖子

1

精华

新手上路

积分
21
金钱
21
注册时间
2013-3-14
在线时间
52 小时
发表于 2016-4-8 11:46:25 | 显示全部楼层
楼主你确定是:0X08070000 不是0X08007000 ?
0x70000可是448k啊,0x7000---是28k
512k的芯片才能用0X08070000。
原子哥是不是又要出黑科技了呀。^_^...
回复

使用道具 举报

16

主题

105

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
374
金钱
374
注册时间
2016-4-4
在线时间
54 小时
 楼主| 发表于 2016-4-12 08:09:04 来自手机 | 显示全部楼层
正点原子 发表于 2016-4-6 22:53
你的芯片有多少flash?

我用的片片是103VE  查了下是512K的程序存储空间
回复

使用道具 举报

16

主题

105

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
374
金钱
374
注册时间
2016-4-4
在线时间
54 小时
 楼主| 发表于 2016-4-12 08:10:01 来自手机 | 显示全部楼层
fanghuiopenedv 发表于 2016-4-8 11:46
楼主你确定是:0X08070000 不是0X08007000 ?
0x70000可是448k啊,0x7000---是28k
512k的芯片才能用0X080 ...

103VE是512K的吧 我查过了
回复

使用道具 举报

16

主题

105

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
374
金钱
374
注册时间
2016-4-4
在线时间
54 小时
 楼主| 发表于 2016-4-12 09:53:18 | 显示全部楼层
用的是STM32F103VET6  自顶!
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2016-4-13 22:14:56 | 显示全部楼层
有我们开发板,可以验证下么?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

16

主题

105

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
374
金钱
374
注册时间
2016-4-4
在线时间
54 小时
 楼主| 发表于 2016-4-14 19:56:53 | 显示全部楼层
正点原子 发表于 2016-4-13 22:14
有我们开发板,可以验证下么?

抱歉 ,没有,可能程序是对的 是不是因为下载程序的问题,问题在于我第一次下载进去的程序有写入也有读取 所以打印出来的也对,但是第二次的程序是没有写入flash的并且程序是重新下载的 如果下载会擦除整个程序存储空间的话 那我第一次不论写什么到flash还会被擦除
不知道这样理解对不对
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-19 01:17

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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