导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→请教铁电连续读写的问题[maleon]

 *第41404篇: 请教铁电连续读写的问题

  
楼 主:maleon 2006年6月15日13:38
 请教铁电连续读写的问题
第一次使用这个FM24C16A,单独对FM24C16A读写一个数据都是正常,结果也是正确的,偶参照了华胄网站上的C语言程序,但是老是只能正确读出第一个数据,以后的都是错误的FF,郁闷的是只能读一个,输出一个,几十个数据分别开来才能成功,请有经验的大虾指点一下。MCU是M8,外部晶振3.6864MHz 
下面是偶的程序: 
void fram_multiple_byte_read(unsigned int addr,unsigned char read_length) 
   { 
      unsigned char temp_write; 
      unsigned char temp_read; 
      unsigned char addr_MSB; 
      unsigned char addr_LSB; 
      unsigned char i; 
      unsigned char *ptr; 
      CLI(); 
      ptr=&StorageBuf[0];          //数据缓冲器 

      addr_MSB=(addr>  >  8)& 0x0007;  //addr是要起始读的地址 
      addr_MSB=(addr_MSB  <  <1); 
      addr_LSB=addr&0x00ff; 

      temp_write=(FRAM_WRITE|addr_MSB); //FRAM_WRITE为0xa0,FRAM_READ为0xa1,定义好了 
      temp_read=(FRAM_READ|addr_MSB); 

      fram_start();   //铁电开始 
      in_byte(temp_write);//in_byte是向铁电写入的子程序,开始先将页地址写入 
      fram_wait_ack();  //发应答信号 
      in_byte(addr_LSB);//再写低8位地址 
      fram_wait_ack(); 
      fram_start();   //按照技术文档的时序图发开始信号 
      in_byte(temp_read);//写入读命令 
      fram_wait_ack(); 

      for(i=0;i  <(read_length-1);i++)     //read_length是要读的字节长度 
        { 
   *ptr=out_byte();//读出的数据存入 
   ptr++; 
   fram_wait_ack(); 
        } 

     *ptr=out_byte();//最后一个数据读出后发无应答和停止信号 
     fram_no_ack(); 
     fram_stop(); 
     SEI(); 
  } 

华胄的参考程序如下所示,他的读出函数是inbyte();写入函数outbyte(); 
//连读函数 
//add为读起始地址,ptr数据保存指针,readlen为读出数据长度 
void readbyteseq(uint add,uchar *ptr,uint readlen) 

   uchar temp,tempw,tempr; 
   uint i; 
   temp=add>  >  8; 
   tempw=(IIC_WRITE|(temp  <  <1)); 
   tempr=temp=(IIC_READ|(temp  <  <1)); 
   start(); 
   outbyte(tempw); 
   nack(1); 
   outbyte((uchar)add); 
   nack(1); 
   start(); 
   outbyte(tempr); 
   nack(1); 
   for(i=0;i  <readlen-1;i++) 
   { 
      *(ptr+i)=inbyte(); 
      ack(); 
       
   } 
   *(ptr+readlen-1)=inbyte(); 
   nack(0); 
   stop(); 

偶都试了N次,就是第一个数据能成功读出,一个一个读出就行,时序偶对照了技术文档都看了N遍,不知道有什么地方不对啊。或者谁有调试通过的程序,请大伙帮帮忙,谢谢了 


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

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


[上一篇主题]:我这边有万年历IC,钟表IC,计算器IC,计步器IC等供应,可与我联系,邮箱:hengzhengri

[下一篇主题]:arm求助,大家都帮帮忙啊,谢谢啊 !!