[mw_shl_code=c,true] while(1)
{
LCD_ShowNum(30,210,num,2,16);//显示读到的字符串
key=KEY_Scan(0);
if(key==KEY1_PRES) //KEY1按下,写入STM32 FLASH
{
LCD_Fill(0,170,239,319,WHITE);//清除半屏
LCD_ShowString(30,170,200,16,16,"Start Write FLASH....");
STMFLASH_Write(FLASH_SAVE_ADDR,(u32*)num,1);
LCD_ShowString(30,170,200,16,16,"FLASH Write Finished!");//提示传送完成
}
if(key==KEY0_PRES) //KEY0按下,读取字符串并显示
{
LCD_ShowString(30,170,200,16,16,"Start Read FLASH.... ");
STMFLASH_Read(FLASH_SAVE_ADDR,(u32*)num1,1);
LCD_ShowString(30,170,200,16,16,"The Data Readed Is: ");//提示传送完成
LCD_ShowNum(30,190,num1,2,16);//显示读到的字符串
}
if(key==KEY2_PRES )
{
num++;
}
i++;
delay_ms(10);
if(i==20)
{
LED0=!LED0;//提示系统正在运行
i=0;
}
} [/mw_shl_code]
只是简单的改动了一下,按下key2 num++,然后写flash,但是每次读出来的都是0
num为要写的内容,num1用来放读出的内容
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
STMFLASH_Read 这个函数的入口参数是个地址 改为&num1 &num问题就解决了
C语言功底有待提高啊
一周热门 更多>