导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→AT45DB161读写请教[lengyue198]

 *第48650篇: AT45DB161读写请教

  
楼 主:lengyue198 2007年5月9日16:14
 AT45DB161读写请教
各位DX请帮小弟看看,我用AT45DB161B做flash的时候,发现读状态的时候读出来的是0XAC是队的,但是在读写页的时候,发现我读的数据是我写进去的数据循环移了一位后的数,比如说我写进去的是0x33读出来的却是0x66,读flash我用的是直接读主存页函数,写的时候是先写到缓冲区一再到页的方法,那位能帮忙看看啊
读写程序如下
void readFlash(u16 page_addr, u16 page_offset, u8 *ram_add, u16 len)
{
 u8 i;
 Disable45db161();
// gsb_CS = 0 ;      writeByte_SPI(0xD2) ;
 writeByte_SPI((u8)(page_addr>  >  6)) ;// 页地址PA11-PA6
 writeByte_SPI((u8)((page_addr  <  <2)|(page_offset>  >  8))) ;
 // 页内偏移BA9-BA8
 writeByte_SPI((u8)(page_offset)) ;// 页内偏移BA7-BA0
 writeByte_SPI(0x00) ;
 writeByte_SPI(0x00) ;
 writeByte_SPI(0x00) ;
 writeByte_SPI(0x00) ;
 for(i = 0; i   < len; i++)
 {
          *(ram_add+i) = readByte_SPI() ;// 读取接收到的
 }
// Disable45db161();
 Enable45db161();
// gsb_CS = 1 ;
}

void writeFlash(u8 *ram_add,u16 page_add,u16 page_offset,u16 len)
{
   u16 i;
   u8  dat; 

// gsb_CS = 0;
   Disable45db161();
   writeByte_SPI(0x84);//读缓冲器1
   writeByte_SPI(0x00);
   writeByte_SPI((u8)(page_offset>  >  8));// 页内偏移BA9-BA8
   writeByte_SPI((u8)(page_offset)) ;  // 页内偏移BA7-BA0
   for(i=0;i  <len;i++)
   {
  dat = ram_add[i];
     writeByte_SPI(dat);
   }
//   gsb_CS = 1;
    Enable45db161();
    Disable45db161();
//   gsb_CS = 0;
    writeByte_SPI(0x83);//察除缓冲器1   
   writeByte_SPI((u8)(page_add>  >  6));
   writeByte_SPI((u8)((page_add  <  <2)+(page_offset>  >  8)));
    writeByte_SPI(0x00) ;
//   gsb_CS = 1;
   Enable45db161();
   delay_DelayMs(400);
}

  
2楼:lengyue198 2007年5月16日09:35
 问题解决了,大家以后有机会讨论啊
问题解决了,大家以后有机会讨论啊

>>>>>>对该主题发表你的看法

本主题贴数2,分页: [第1页]


[上一篇主题]:请问电压的线性增大怎么设计啊?

[下一篇主题]:请大虾帮我看看这个电路!!