打印
[NUC120]

如何flash读写 很急

[复制链接]
1417|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
direrwind|  楼主 | 2015-7-29 13:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
最近在做专案,剩下FLASH问题还未解决,
以下是我的程式码:
透过uart 丟0x11给a变量并且往FLASH写入,接着主程式就会判断输出高电位,
但是呢断电后在上电发现a变量并没有保存下来(因为这时就变回输出低电位),
拜托高手可以帮个忙怎么使用flash读写吗??我看手册影片范例都不太懂... 真的很急呀

#include "NUC1xx.h"        
#include "Driver\DrvGPIO.h"  
#include "Driver\DrvFMC.h"        
#include "Driver\DrvSYS.h"
#define LDROM_BASE 0x00100000           
void Initsystem(void);
void UartInit(void);
void FMC_Init();
int a,data;
main(void)
{
Initsystem();
UartInit();
FMC_Init();
while(1)
{                  
                   DrvFMC_Read(LDROM_BASE+4,&data);
           a=data;

                        GPIOA->DOUT = 0x01;
                   while(1)
                   {
                   if(a==0x11)
                   {
                                   GPIOA->DOUT = 0x00;
                   }
                   }
}
}

void Initsystem()
{
   UNLOCKREG();
   SYSCLK->PWRCON.XTL12M_EN = 1;
   SYSCLK->CLKSEL0.HCLK_S = 0;
   LOCKREG();
}
void UartInit()
{
SYS->GPBMFP.UART0_TX=1;
SYS->GPBMFP.UART0_RX=1;

SYSCLK->APBCLK.UART0_EN = 1;
SYSCLK->CLKSEL1.UART_S = 3;
SYSCLK->CLKDIV.UART_N = 0;

UART0->FCR.TFR =1;
UART0->FCR.RFR =1;
UART0->FCR.RFITL = 0;
UART0->LCR.PBE = 0;
UART0->LCR.WLS = 3;
UART0->LCR.NSB = 0;

UART0->BAUD.DIV_X_EN=0;
UART0->BAUD.DIV_X_ONE=0;
UART0->BAUD.DIVIDER_X=0;
UART0->BAUD.BRD=22;

UART0->IER.RDA_IEN=1;
NVIC_EnableIRQ(UART0_IRQn);         
}

void UART0_IRQHandler()
{
while(UART0->ISR.RDA_IF==1)
{
  a=UART0->DATA;
  DrvFMC_Write(LDROM_BASE+4,a);
        
}
}         
  void FMC_Init()
{
  UNLOCKREG();
  DrvFMC_EnableISP();
  DrvFMC_EnableLDUpdate();

}


相关帖子

沙发
direrwind|  楼主 | 2015-7-30 15:34 | 只看该作者
都没有人帮忙 伤心呀
后来看书上在写了一个简单程式 不过也不行
读出来都是FFFFFF,只希望有人可以贴出成功范例参考帮帮忙
  UNLOCKREG();
DrvFMC_EnableISP();
DrvFMC_EnableLDUpdate();

FMC->ISPCMD.FCTRL=2;
FMC->ISPCMD.FCEN=0;
FMC->ISPCMD.FOEN=1;

FMC->ISPADR=0x0001F000;
FMC->ISPTRG.ISPGO=1;
__ISB();
while(FMC->ISPTRG.ISPGO==1);
if(FMC->ISPCON.ISPFF==1)
{
FMC->ISPCON.ISPFF=1;
}
FMC->ISPCON.ISPEN = 0;
FMC->ISPCON.ISPEN = 1;


FMC->ISPCMD.FCTRL=1;
FMC->ISPCMD.FCEN=0;
FMC->ISPCMD.FOEN=1;
FMC->ISPADR=0x0001F000;
FMC->ISPDAT=33;
FMC->ISPTRG.ISPGO=1;
__ISB();
while(FMC->ISPTRG.ISPGO==1);
if(FMC->ISPCON.ISPFF==1)
{
FMC->ISPCON.ISPFF=1;
}
FMC->ISPCON.ISPEN = 0;
FMC->ISPCON.ISPEN = 1;

FMC->ISPCMD.FCTRL=0;
FMC->ISPCMD.FCEN=0;
FMC->ISPCMD.FOEN=0;
FMC->ISPADR=0x0001F000;
FMC->ISPDAT=0;
FMC->ISPTRG.ISPGO=1;
__ISB();
while(FMC->ISPTRG.ISPGO==1);
if(FMC->ISPCON.ISPFF==1)
{
FMC->ISPCON.ISPFF=1;
}

data=FMC->ISPDAT;

使用特权

评论回复
板凳
direrwind|  楼主 | 2015-7-30 22:22 | 只看该作者
已成功XDD

使用特权

评论回复
地板
lvyunhua| | 2015-7-30 22:44 | 只看该作者
楼主问题解决了吗

使用特权

评论回复
5
第九度| | 2015-9-16 21:47 | 只看该作者
我弄好了

使用特权

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

本版积分规则

6

主题

23

帖子

1

粉丝