分別抓取了注釋while語句跟沒有注釋while語句的I2C調(diào)試數(shù)據(jù)與波形圖,可以發(fā)現(xiàn),前者正常執(zhí)行了stop,后者沒有,也就是說增加 while((sda==1)&&(i<250))i++; 之后,stop缺失,導致24c02沒有進入寫周期,數(shù)據(jù)也就沒有寫進去。 問題是為何while((sda==1)&&(i<250))i++;這條語句會導致stop缺失,沒搞明白。這只是一條判斷語句,sda也產(chǎn)生了應(yīng)答的,那么while為假,所以執(zhí)行這條語句也就是1個指令周期的時間,相當于延時了一個指令周期,為什么會有影響呢? 如下是對比圖:
|