无码av一区二区三区无码,在线观看老湿视频福利,日韩经典三级片,成 人色 网 站 欧美大片在线观看

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

單片機應(yīng)用實踐篇之單片機IO模擬I2C總線時序按頁寫24C02并顯示在LC...

2023-07-26 19:25 作者:無數(shù)碎片尋你  | 我要投稿

問:if(addr&Page_bye==0) 看不懂這個, 如何判斷出寫了八個字節(jié)呢


答:這一行代碼中的 if(addr&Page_bye==0) 是用來判斷是否已經(jīng)寫入了8個字節(jié)。addr 是當前寫入的地址,Page_bye 是一個宏變量,其值為 0x07。& 是按位與運算符,它將 addr 和 Page_bye 的二進制表示進行按位與運算。

由于 Page_bye 的值為 0x07,它的二進制表示為 00000111。當 addr 的二進制表示的最后三位都為0時,addr & Page_bye 的結(jié)果為0。這意味著 addr 是8的倍數(shù),即已經(jīng)寫入了8個字節(jié)。

因此,當 addr & Page_bye == 0 時,意味著已經(jīng)寫入了8個字節(jié),此時會退出內(nèi)循環(huán)并開始寫入下一頁的數(shù)據(jù)。


問:那么 addr的初值, 是不是有限制了,

答:是的,addr 的初始值會影響這個函數(shù)的行為。addr 是函數(shù)的第二個參數(shù),表示要寫入數(shù)據(jù)的起始地址。如果 addr 的初始值不是8的倍數(shù),那么第一次寫入數(shù)據(jù)時不會寫滿8個字節(jié)。

例如,如果 addr 的初始值為3,那么第一次寫入數(shù)據(jù)時只會寫入5個字節(jié)(地址3、4、5、6和7),然后退出內(nèi)循環(huán)并開始寫入下一頁的數(shù)據(jù)。這是因為當 addr 增加到8時,addr & Page_bye == 0 為真,導(dǎo)致退出內(nèi)循環(huán)。

因此,如果您希望每次都寫滿8個字節(jié),那么應(yīng)該確保 addr 的初始值是8的倍數(shù)。


問:if(addr&Page_bye==0) 這樣做, 是不是相當于 分頁了, 因為這完全是把 256 分成 每頁為 8個字節(jié), 然后很巧妙的 , 按照這個去寫入每頁, 而不是 8 個必須湊成所謂的一頁 , 而是根據(jù)256 這個進行寫入

答:是的,這個函數(shù)會按照頁大?。?個字節(jié))來寫入數(shù)據(jù)。addr & Page_bye == 0 這個條件用來判斷是否已經(jīng)寫滿了一頁。當這個條件為真時,意味著已經(jīng)寫滿了一頁,此時會退出內(nèi)循環(huán)并開始寫入下一頁的數(shù)據(jù)。

這樣做可以確保每次寫入的數(shù)據(jù)都是按照頁大小對齊的。這對于某些I2C設(shè)備來說是很重要的,因為它們要求寫入數(shù)據(jù)時必須按照頁大小對齊。

當然,這并不意味著每次都必須寫滿一頁。如果要寫入的數(shù)據(jù)不足一頁,那么函數(shù)會正常寫入數(shù)據(jù)并返回。只有當要寫入的數(shù)據(jù)超過一頁時,才會按照頁大小對齊來寫入數(shù)據(jù)。


單片機應(yīng)用實踐篇之單片機IO模擬I2C總線時序按頁寫24C02并顯示在LC...的評論 (共 條)

分享到微博請遵守國家法律
遵义市| 昌邑市| 黎平县| 怀化市| 鹰潭市| 北海市| 墨竹工卡县| 襄垣县| 麻江县| 波密县| 台北县| 宜丰县| 平原县| 潢川县| 阳新县| 汉川市| 嵩明县| 壤塘县| 永州市| 远安县| 临猗县| 平定县| 高清| 时尚| 庄浪县| 临西县| 额敏县| 巫溪县| 信丰县| 正镶白旗| 民县| 明水县| 股票| 霞浦县| 乌拉特前旗| 长岭县| 融水| 瓮安县| 淮南市| 彭阳县| 当阳市|