搜索
bottom↓
回复: 2

EN25T80的ID读不对,大家帮忙看看。

[复制链接]

出0入0汤圆

发表于 2011-12-30 18:16:05 | 显示全部楼层 |阅读模式
这是相关代码,这些代码在我另一块实验板上可以正常读到EN25T80的ID:0X1C 0X51 0X14,可是弄到这块实验板上后就读成0X18 0X00 0X06了,时钟都是24M

//Data is shifted out on the falling edge of the CLK.
//D0(数据输出)采样于CLK的下降沿
//器件默认为SPI模式0,时钟空闲时为低。
unsigned char SPI_ReadByte(void){
    unsigned char i,j=0;   
    for(i=0;i<8;i++){
     j<<=1;
         SPI_CLK=0;
           _nop_();
            _nop_();
                 _nop_();
                  _nop_();   
         if(SPI_SDO) j++;
         SPI_CLK=1;
//         j<<=1;                   
       
    }
        SPI_CLK=0;         //MODE 0,时钟空闲时为低。
    return j;
}


//Data is shifted in on the rising edge of the CLK.
//DI(数据输入)采样于CLK的上升沿
//器件默认为SPI模式0,时钟空闲时为低。
void SPI_WriteByte(unsigned char wByte){
    unsigned char i;
      
    for(i=0;i<8;i++){
         SPI_CLK=0;
     if(wByte&0x80) {SPI_SDI=1;}  
     else                        {SPI_SDI=0;}
     wByte<<=1;
         SPI_CLK=1;
          _nop_();              
    }
        SPI_CLK=0;         //MODE 0,时钟空闲时为低。
}

void readid()
{         
  
  SPI_CLK=0;         //MODE 0,在CS变低之前,时钟变成低电平
  _nop_();                //MODE 0,在CS变低之前,时钟变成低电平
  _nop_();
  SPI_CS=0;                //
  SPI_WriteByte(0x9f);           //READ ID
  ss[0]=SPI_ReadByte();

//   SPI_WriteByte(255);           //dummy.8个CLK
   ss[1]=SPI_ReadByte();
//     SPI_WriteByte(255);
        ss[2]=SPI_ReadByte();

  SPI_CLK=0;         //MODE 0,在CS变高之前,时钟变成低电平
  _nop_();                //MODE 0,在CS变高之前,时钟变成低电平
  _nop_();
  SPI_CS=1;            //MODE 0,在CS变高之前,时钟变成低电平

}


void main(void)
{            unsigned char nn,n2,tt,mm,qq,pg;       
//      unsigned long lp=0;  
//          unsigned char *p;
          delay();
             for(mm=0;mm<8;mm++)
                    for(nn=0;nn<128;nn++)
                        LCDRAM[mm][nn]=0;
          lcdreset();                     //初始化液晶显示控制器
while(1)
{ pg=0;
   
   while(pg<8)  
         { qq=0;
           readid();
            for(nn=0;nn<3;nn++)
                { mm=ss[nn];
                  tt=mm/16;
                  tt=tt*5;
                  for(n2=0;n2<5;n2++)
                           LCDRAM[pg][qq++]=ASC_57[tt++];
                           tt=mm%16;
                          tt=tt*5;
                          
                                 for(n2=0;n2<5;n2++)
                                  LCDRAM[pg][qq++]=ASC_57[tt++];
                 qq+=4;//空4列;
                 }

          mypute12864();
          pg++;
          delay();
          delay();
          delay();
          delay();
         }
  }

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入0汤圆

 楼主| 发表于 2011-12-31 13:12:34 | 显示全部楼层
万能的坛啊,赐于我力量吧,到底是哪里的时序不对呢。0x18 0x00 0x06这能说明些什么问题呢。

出0入0汤圆

发表于 2013-1-15 19:20:06 | 显示全部楼层
楼主有EN25T80这个芯片的驱动程序吗?
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-18 10:46

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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