会用FLASH的大神请指教,我往FLASH里写数据,读出来却是FF FF,这是为什么?

2019-10-16 01:25发布

本帖最后由 dreamARM 于 2016-11-2 15:51 编辑

int main(void)
{
  NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置中断优先级分组为组2:2位抢
        while(1)
        {
                  step++;
                        MotorRun(3,step);
                if(step>=65535)
                        step=0;
                if(KEY2==0)        //KEY0按下,读取字符串并显示
                        {
                                delay_ms(20);
                                if(KEY2==0)        //KEY0按下,读取字符串并显示        
                    {
                            STMFLASH_Read(FLASH_SAVE_ADDR,(u16*)flash,SIZE);
                                  txbuf[0]=flash/256;
                                    txbuf[1]=flash%256;
                                   send_char(txbuf[0]);
                                        delay_ms(1);
                                   send_char(txbuf[1]);        
                    }
            }         
  }
void USART1_IRQHandler(void)
{
        //unsigned char recdata;
        unsigned char res;
        if(USART_GetITStatus(USART1,USART_IT_RXNE)==SET)
        {
                 res = USART_ReceiveData(USART1);
          if (res==0x01)
                  {
                                        STMFLASH_Write(FLASH_SAVE_ADDR,(u16*)step,SIZE);
                           rxbuf[0]=step/256;
                               rxbuf[1]=step%256;
                             send_char(rxbuf[0]);
                            send_char(rxbuf[1]);
                        }
                }                          
}                        
这个程序的用法是  step 在主程序里自增, 当我发出01命令时候,可以显示并储存当前step值,以后上电开机,或是按KEY2都可以直接读出来,但是现在读出来全是00.
麻烦大家了!

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。