| 
 
| 最近在做专案,剩下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();
 
 }
 
 
 
 | 
 |