OpenEdv-开源电子网

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

FLASH数据写入问题

[复制链接]

5

主题

25

帖子

0

精华

初级会员

Rank: 2

积分
98
金钱
98
注册时间
2016-5-18
在线时间
22 小时
发表于 2017-2-11 23:13:10 | 显示全部楼层 |阅读模式
3金钱
int型变量不能写入FLASH,FLASH是不是只可以写入数组。变量如何写入FLASH?

#include "sys.h"
#include "delay.h"
#include "usart.h"
#include "led.h"
#include "lcd.h"
#include "stmflash.h"
#include "key.h"  
//ALIENTEK ì½Ë÷ÕßSTM32F407¿a·¢°å êμÑé34
//FLASHÄ£ÄaEEPROM êμÑé -¿aoˉêy°æ±¾
//¼¼êõÖ§3Ö£owww.openedv.com
//ìÔ±|μêÆì£ohttp://eboard.taobao.com  
//1ãÖYêDDÇòíμç×ó¿Æ¼¼óDÏT1«Ë¾  
//×÷ÕߣoÕyμãÔ-×ó @ALIENTEK

//òaD′èëμ½STM32 FLASHμÄ×Ö·û′®êy×é
//const u8 TEXT_Buffer[]={"STM32 FLASH"};
//#define TEXT_LENTH sizeof(TEXT_Buffer)                                  
//#define SIZE TEXT_LENTH/4+((TEXT_LENTH%4)?1:0)
#define FLASH_SAVE_ADDR  0X0800C004        
.
int main(void)
{
       
        u8 key=0;
        u16 i=0;
        //u8 datatemp[SIZE];       
        int m=1234;
        int c;

        NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
        delay_init(168);  
        uart_init(115200);               
       
        LED_Init();                                       
        LCD_Init();                                       
        KEY_Init();                                       
        POINT_COLOR=RED;
        LCD_ShowString(30,50,200,16,16,"Explorer STM32F4");       
        LCD_ShowString(30,70,200,16,16,"FLASH EEPROM TEST");       
        LCD_ShowString(30,90,200,16,16,"ATOM@ALIENTEK");
        LCD_ShowString(30,110,200,16,16,"2014/5/9");
        LCD_ShowString(30,130,200,16,16,"KEY1:Write  KEY0:Read");
         //sprintf(asd,"%d",1234);
        while(1)
        {
                key=KEY_Scan(0);
                if(key==KEY1_PRES)       
                {
                        LCD_Fill(0,170,239,319,WHITE);//Çå3y°ëÆá   
                        LCD_ShowString(30,170,200,16,16,"Start Write FLASH....");
                        STMFLASH_Write(FLASH_SAVE_ADDR,(u32*)m,10);
                        LCD_ShowString(30,170,200,16,16,"FLASH Write Finished!");
                }
                if(key==KEY0_PRES)        //KEY0°′ÏÂ,¶áè¡×Ö·û′®2¢ÏÔê¾
                {
                        LCD_ShowString(30,170,200,16,16,"Start Read FLASH.... ");
                        STMFLASH_Read(FLASH_SAVE_ADDR,(u32*)c,10);
                        LCD_ShowString(30,170,200,16,16,"The Data Readed Is:  ");
               
                        //LCD_ShowString(30,190,200,16,16,datatemp);
                        LCD_ShowxNum(30,200,c,16,16,1);
                }
                i++;
                delay_ms(10);  
                if(i==20)
                {
                        LED0=!LED0;       
                        i=0;
                }                  
        }   
}


红色的为自己改动部分,为什么每次读出来的数据都是 0;

最佳答案

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

使用道具 举报

3

主题

20

帖子

0

精华

初级会员

Rank: 2

积分
89
金钱
89
注册时间
2016-3-20
在线时间
17 小时
发表于 2017-2-11 23:13:11 来自手机 | 显示全部楼层
回复

使用道具 举报

50

主题

1805

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
6662
金钱
6662
注册时间
2016-5-29
在线时间
910 小时
发表于 2017-2-12 08:11:29 | 显示全部楼层
有库的情况FLASH操作是比较简单的.按库来就可以了.基本上不用修改.
回复

使用道具 举报

5

主题

25

帖子

0

精华

初级会员

Rank: 2

积分
98
金钱
98
注册时间
2016-5-18
在线时间
22 小时
 楼主| 发表于 2017-2-12 12:22:08 | 显示全部楼层

怎么取啊!,能不能给个例子
回复

使用道具 举报

5

主题

25

帖子

0

精华

初级会员

Rank: 2

积分
98
金钱
98
注册时间
2016-5-18
在线时间
22 小时
 楼主| 发表于 2017-2-12 12:25:33 | 显示全部楼层

谢谢,已经学会了。三克油
回复

使用道具 举报

30

主题

1170

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1993
金钱
1993
注册时间
2016-2-16
在线时间
527 小时
发表于 2017-2-13 09:11:52 来自手机 | 显示全部楼层
内部Flash不能随便写的,要先页擦出
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-7-12 10:49

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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