野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 14906|回复: 2

求帮助__mini板读写外部flash的的问题

[复制链接]
发表于 2015-6-22 22:28:28 | 显示全部楼层 |阅读模式
cal_p[0] = (touch_para.An*1.0)/touch_para.Divider;  // aa1
    cal_p[1] = (touch_para.Bn*1.0)/touch_para.Divider;  // bb1
    cal_p[2] = (touch_para.Cn*1.0)/touch_para.Divider;  // cc1

    cal_p[3] = (touch_para.Dn*1.0)/touch_para.Divider;  // aa2
    cal_p[4] = (touch_para.En*1.0)/touch_para.Divider;  // bb2
    cal_p[5] = (touch_para.Fn*1.0)/touch_para.Divider;  // cc2     

    {
      cal_flag = 0x55;
      SPI_FLASH_SectorErase(0);
      SPI_FLASH_BufferWrite(&cal_flag, 0, 1);     
      SPI_FLASH_BufferWrite((void*)cal_p, 1, sizeof(cal_p));
      for( k=0; k<6; k++ )
        printf("\r\n tx = %LF \r\n",cal_p[k]);
                printf("\r\n test1 = %x \r\n",cal_flag);                //打印出标志位

    }
          for( k=0; k<6; k++ )                                              //把数据清空
          {
           cal_p[k]=0;
          }
         for( k=0; k<6; k++ )
         printf("\r\n test = %f \r\n",cal_p[k]);
         SPI_FLASH_BufferRead(&cal_flag, 0, 1);
         printf("\r\n test2 = %x \r\n",cal_flag);                  //以读的方式打印出标志位

    SPI_FLASH_BufferRead((void*)cal_p, 1, sizeof(cal_p));
    SPI_FLASH_CS_HIGH();
    for( k=0; k<6; k++ )
    printf("\r\n rx = %f \r\n",cal_p[k]);

数据写入和读出分别打印的内容都是一样,但是断电之后在主函数读flash时内容的怎么都是其他数据;
  SysTick_Init();

  LED_GPIO_Config();

  LCD_Init();       
  /* GRAM扫描方向为左下脚->右上角 */
  Lcd_GramScan(2);
  LCD_Clear(0, 0, 320, 240, BACKGROUND);

  USART1_Config();

  SPI_FLASH_Init();
  SPI_FLASH_SectorErase(0);

          SPI_FLASH_BufferRead((void*)cal_p, 1, sizeof(cal_p));                     //复位后在mian读取flash
          SPI_FLASH_CS_HIGH();  
          for( k=0; k<6; k++ )
          printf("\r\n rx = %x \r\n",cal_p[k]);

  /* 触摸屏IO和中断初始化 */
  Touch_Init();



串口数据:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
tx = 0.090032

tx = -0.002450

tx = -14.310098

tx = -0.000755

tx = 0.065225

tx = -15.362291

test1 = 55

test = 0.000000                                      //数组清理一遍

test = 0.000000

test = 0.000000

test = 0.000000

test = 0.000000

test = 0.000000

test2 = 55

rx = 0.090032                                //按这段来说可以保证数据都是读出来的吧

rx = -0.002450

rx = -14.310098

rx = -0.000755

rx = 0.065225

rx = -15.362291

rx = 10                                           //这些是复位读取的,数据都没有了
rx = 40

rx = 40

rx = 40

rx = 40

rx = 40





为什么会这样?????????????????????

回复

使用道具 举报

发表于 2015-6-23 08:58:08 | 显示全部楼层
SysTick_Init();

  LED_GPIO_Config();

  LCD_Init();        
  /* GRAM扫描方向为左下脚->右上角 */
  Lcd_GramScan(2);
  LCD_Clear(0, 0, 320, 240, BACKGROUND);

  USART1_Config();

  SPI_FLASH_Init();
  SPI_FLASH_SectorErase(0);   //这句不能要,删除

          SPI_FLASH_BufferRead((void*)cal_p, 1, sizeof(cal_p));                     //复位后在mian读取flash
          SPI_FLASH_CS_HIGH();  
          for( k=0; k<6; k++ )
          printf("\r\n rx = %x \r\n",cal_p[k]);

  /* 触摸屏IO和中断初始化 */
  Touch_Init();
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-6-24 21:45:54 | 显示全部楼层
`````郁闷   太不小心了~~~~~·
回复 支持 反对

使用道具 举报

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

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-11-23 15:45 , Processed in 0.040021 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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