欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1648|回復: 2
收起左側

單片機+SPI-E2PROM讀取的程序問題

[復制鏈接]
ID:578842 發表于 2021-11-22 22:00 | 顯示全部樓層 |閱讀模式
對25AA02的讀寫底層讀程序這樣:
unsigned char EE_Read_Byte()
{
   unsigned char dat;
   unsigned char i;

   for(i=0;i<8;i++)
   {
           dat<<=1;
        AA_SCK=0;
           AA_SCK=1;
           if(SO!=0)
        {
           dat=dat|0x01;
        }
           else
        {
           dat=dat&0xfe;
        }
   }
   return dat;

}

仿真結果是255
unsigned char EE_Read_Byte()
{
   unsigned char dat;
   unsigned char i;

   for(i=0;i<8;i++)
   {

        AA_SCK=0;
           AA_SCK=1;
           if(SO!=0)
        {
           dat=dat|0x01;
        }
           else
        {
           dat=dat&0xfe;
        }
          dat<<=1;
   }
   return dat;

}

仿真結果是254


有沒有大神指點一下,為什么移位操作位置不同會丟個1?

回復

使用道具 舉報

ID:624769 發表于 2021-11-22 22:52 | 顯示全部樓層
如果移位再最后,

那么,做完最后一次  dat |= 0x01,之后, 假定是 0xFF;  即 11111111 。 你再次移位, 最高位移出,最低為補0, 就變成了 0xFE 即 11111110, 同理,由于移位的時候,都是最高位舍棄,最低為補0 所以你的 else 是不需要的,只要判斷了 SO == 1    然后 dat |= 0x01; 即可, 因為你不給最低位置1,最低位就是默認的0。

評分

參與人數 1黑幣 +15 收起 理由
wps10025 + 15 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

ID:578842 發表于 2021-11-23 06:30 | 顯示全部樓層
188610329 發表于 2021-11-22 22:52
如果移位再最后,

那么,做完最后一次  dat |= 0x01,之后, 假定是 0xFF;  即 11111111 。 你再次移位 ...

多謝多謝,明白了
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表