最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(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...的評論 (共 條)

分享到微博請遵守國家法律
五台县| 福海县| 梧州市| 宁城县| 清流县| 资阳市| 河东区| 体育| 额尔古纳市| 绥化市| 英山县| 会理县| 隆德县| 论坛| 海伦市| 太仆寺旗| 云霄县| 酒泉市| 石河子市| 福鼎市| 营口市| 乡宁县| 湄潭县| 晋州市| 罗田县| 寻甸| 嘉祥县| 七台河市| 巴楚县| 申扎县| 尤溪县| 阿坝| 漳平市| 内丘县| 张家港市| 会宁县| 东宁县| 庄浪县| 响水县| 宜阳县| 扎鲁特旗|