標(biāo)題:
if(addr&Page_bye==0)這一步,寫夠8個字節(jié),addr=0x07時應(yīng)該不會成立 但運行正確
[打印本頁]
作者:
coderyang
時間:
2023-3-14 18:48
標(biāo)題:
if(addr&Page_bye==0)這一步,寫夠8個字節(jié),addr=0x07時應(yīng)該不會成立 但運行正確
/*********************************************************************
函數(shù)名:E2WritePage();
參數(shù)列表:第一個為I2C_Add器件地址,第二個addr器件子地址,第三個參數(shù)為數(shù)據(jù)數(shù)組,第四個參數(shù)為寫入的字節(jié)數(shù)
返回參數(shù):0:寫入失敗,內(nèi)存不夠,1:正常寫入
功能:實現(xiàn)多字節(jié)寫入器件
************************************************************************/
uchar E2WritePage(uchar I2C_Addr,uchar addr,uchar *buf,uint len)
{
uint i;
if(MAX_E2-addr<len)//判斷現(xiàn)存內(nèi)存是否足夠,這里的MAX_E2是我定義的一個宏變量,值是255
return 0;
while(len>0){
I2C_Start();//啟動總線
I2C_WriteByte((I2C_Addr<<1));
I2C_WriteByte((addr));//子器件尋址
while(len>0){
I2C_WriteByte(*buf++);//寫入數(shù)據(jù)
addr++;
len--;
//這個Page_bye也是我定義的一個宏變量,值是0x07,
//用來是否寫入夠8字節(jié)了,夠了就直接退出內(nèi)循環(huán),開始寫下一頁的數(shù)據(jù),也就是翻頁
if(addr&Page_bye==0)
break;
}
I2C_Stop();
Delay10ms();
}
return 1;
if(addr&Page_bye==0)這一步,寫夠8個字節(jié),addr=0x07時應(yīng)該不會成立 但是程序運行正確
作者:
Hephaestus
時間:
2023-3-14 19:37
搞不清優(yōu)先級就打括號,反正打括號又不會增加代碼量,為什么不做?
作者:
Y_G_G
時間:
2023-3-14 20:47
(addr&Page_bye==0)
為什么要這樣寫呢?加個括號不好嗎?
C語言優(yōu)先級那么多,總有一兩個記不住的,加個括號不就好了
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1