stm32f7xx qspi 扇区读写 ???

2019-07-20 19:01发布

本帖最后由 hpdell 于 2016-11-9 09:48 编辑

大神们好,

请教下 stm32f7xx 开发板上的 qspi 读写功能,我在测试时 一次写入 8192 个字节数据,但是出现后面的4096字节的数据不对,前面的4096字节数据完全正常,

请问这是什么情况啊 ??

另外还有个 什么4字节地址,到底是个什么意思啊  ??

读写函数如下:

u32 cc, QspiAddr_RW  ;

  {
    static uint8_t i = 0;

    for(cc=0;cc<8192;cc++)
    {
      uart_tx_buff[cc] = i * 2;
      i ++;
    }
  }



  if(QSPI_EraseSector( 4 * 4096 ) != QSPI_OK)
    printf("QSPI Erase Sector Error ... ... = %d ", cc);
  else
    printf("QSPI Erase Sector OK ** ... ... = %d ", cc);   


  if(QSPI_EraseSector( 5 * 4096 ) != QSPI_OK)
    printf("QSPI Erase Sector Error ... ... = %d ", cc);
  else
    printf("QSPI Erase Sector OK ** ... ... = %d ", cc);



  QspiAddr_RW = (uint32_t)((uint32_t)(4)*4096UL + 0);

  printf("QSPI Write 8192 Begin ... ... ");
  QSPI_WriteBuff((uint8_t*) &uart_tx_buff[0],  (uint32_t)(QspiAddr_RW ), 8192);


  QspiAddr_RW = (uint32_t)((uint32_t)(4)*4096UL + 0);
  printf("QSPI Read  8192 Begin ... ... ");
  QSPI_ReadBuff((uint8_t*) &uart_rx_buff[0],  (uint32_t)(QspiAddr_RW ), 8192);

  printf("QSPI Read  8192 End   ... ... ");



  if( Buffercmp_8(&uart_tx_buff[0], &uart_rx_buff[0], 8192) == 0)
    printf("QSPI Data Read Write Auto Erase Sector OK ...! *** 1 ");
  else
    printf("QSPI Data Read Write Auto Erase Sector Er ...? *** 1 ");  












友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
2条回答
正点原子
1楼-- · 2019-07-20 23:54
 精彩回答 2  元偷偷看……
hpdell
2楼-- · 2019-07-21 00:31
正点原子 发表于 2016-11-9 22:50
你自己写 的函数是否存在bug?  我们例程肯定是OK的,我们字库,图片什么的资源都是存放在SPI FLASH的,要 ...

那我再捣鼓捣鼓看看

一周热门 更多>