藍橋杯之AT24C02的頁寫頁讀

一、原理:

1、頁寫:一次性向AT24C02里的多個數據存儲單元地址寫入多個數據

? ? ? ? (1)在AT24C02的頁寫模式下,每次寫入數據后,存儲單元地址會自動加1

? ? ? ? (2)一頁有8個數據存儲單元,藍橋杯的AT24C02一共有256個數據存儲單元,也就是說,藍橋杯的AT24C02只有256 / 8 = 32個頁。

? ? ? ? (3)如果一頁寫入了8個以上的數據,那么存儲單元地址就會從頭開始,比如從0x00開始頁寫,一直寫到了0x07,這時如果繼續頁寫,就會從0x00開始覆蓋原來的內容。

? ? ? ? (4)在一次頁寫里面,無需任何的延時;但是在多次頁寫時,要有5ms的延時。以下是Deepseek的回復。

?2、頁讀:一次性向AT24C02里的多個數據存儲單元地址讀取多個數據(與上述頁寫原理類似,不做重復)

注意:在寫入設備地址后,還需要寫入開始頁讀的存儲單元地址,下述原理圖未標出。

二、代碼:(只給出頁寫頁讀代碼,其他代碼未給出,請自己寫)

注:寫入之后不能立即讀取,要延時10ms左右

1、頁寫代碼

/*
函數:AT24C02頁寫函數
參數:*Data:要寫入的數據數組的首地址,Address:頁寫的首地址(最好是8的倍數,比如0x00,0x08,0x10等等),num:Data數組的長度
功能:一次性往AT24C02里的多個數據存儲地址寫入多個字節數據
返回值:無
*/
void AT24C02_Page_Write(unsigned char *Data,Address,num)
{I2CStart();I2CSendByte(0xA0);I2CWaitAck();I2CSendByte(Address);I2CWaitAck();while(num--){I2CSendByte(*Data++);I2CWaitAck();}I2CStop();Delayms(5);  // 進行多次頁寫時,要加一個5ms延時,單次頁寫則不用加
}

2、頁讀代碼

/*
函數:AT24C02頁讀函數
參數:*Data:要寫入的數據數組的首地址,Address:頁寫的首地址(最好是8的倍數,比如0x00,0x08,0x10等等),num:Data數組的長度
功能:一次性往AT24C02里的多個數據存儲地址讀取多個字節數據
返回值:無
*/
void AT24C02_Page_Read(unsigned char *Data,Address,num)
{unsigned char Temp;I2CStart();I2CSendByte(0xA0);I2CWaitAck();I2CSendByte(Address);I2CWaitAck();I2CStart();I2CSendByte(0xA1);I2CWaitAck();while(num--){*Data++ = I2CReceiveByte();if(num != 0)  I2CSendAck(0);  // 沒讀完if(num == 0)  I2CSendAck(1);  // 讀完了}I2CStop();
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/73965.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/73965.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/73965.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

大白話詳細解讀函數之柯里化

1. 函數柯里化是什么? 函數柯里化是一種將多參數函數轉換成一系列單參數函數的技術。簡單來說,就是把一個接收多個參數的函數,變成每次只接收一個參數,并返回一個新函數,直到所有參數都接收完畢,最后返回結…

【C++網絡編程】第2篇:簡單的TCP服務器與客戶端

一、TCP通信流程回顧 1. 服務器端流程 1. 創建Socket → socket() 2. 綁定地址和端口 → bind() 3. 開始監聽 → listen() 4. 接受客戶端連接 → accept() 5. 接收/發送數據 → recv()/send() 6. 關閉連接 → closesocket()2. 客戶端流程 1. 創建Socket → socket() 2. 連接…

Spring IoC DI入門

一、Spring,Spring Boot和Spring MVC的聯系及區別 Spring是另外兩個框架的基礎,是Java生態系統的核心框架,而SpringMVC是Spring 的子模塊,專注于 Web 層開發,基于 MVC 設計模式(模型-視圖-控制器&#xff…

【uniapp】記錄tabBar不顯示踩坑記錄

由于很久沒有使用uniapp了,官方文檔看著又雜亂,底部tab導航欄一直沒顯示,苦思許久,沒有發現原因,最后網上搜到帖子,list里的第一個數據,pages 的第一個 path 必須與 tabBar 的第一個 pagePath 相…

Zabbix安裝(保姆級教程)

Zabbix 是一款開源的企業級監控解決方案,能夠監控網絡的多個參數以及服務器、虛擬機、應用程序、服務、數據庫、網站和云的健康狀況和完整性。它提供了靈活的通知機制,允許用戶為幾乎任何事件配置基于電子郵件的告警,從而能夠快速響應服務器問…

穿透遞歸的本質:從無限夢境到可控魔法的蛻變之路

穿透遞歸的本質:從無限夢境到可控魔法的蛻變之路(C實現) 一、遞歸:程序員的盜夢空間 在計算機科學的宇宙中,遞歸是最接近魔法本質的編程范式。它像一面鏡子中的鏡子,引導我們通過自我相似性破解復雜問題。…

1.5.4 掌握Scala內建控制結構 - 條件循環

本次實戰主要圍繞Scala語言中的內建控制結構,特別是條件循環進行學習和實踐。通過while循環和do-while循環兩種結構,分別實現了計算1到100的累加和以及打印所有水仙花數的任務。在while循環中,首先定義了初始條件和循環條件,然后通…

MySQL程序

博主主頁: 碼農派大星. 數據結構專欄:Java數據結構 數據庫專欄:數據庫 JavaEE專欄:JavaEE 軟件測試專欄:軟件測試 關注博主帶你了解更多知識 1. mysqld (MySQL服務器) mysqld也被稱為MySQL服務器,是?個多線程程序,對數據?錄進?訪問管理(包含數據庫…

0321美團實習面試——技能大致內容

專業技能 1.掌握盒?模型,Flex響應式布局和BFC等問題 盒?模型 Flex布局 媒體查詢 結合Handleresize.ts監聽設備 BFC 2.掌握原型鏈,異步,事件循環和閉包等問題 原型鏈 異步 class Promise {static resolve(value) {if (value instanceof…

分布式任務調度

今天我們講講分布式定時任務調度—ElasticJob。 一、概述 1、什么是分布式任務調度 我們可以思考?下下?業務場景的解決?案: 某電商平臺需要每天上午10點,下午3點,晚上8點發放?批優惠券 某銀?系統需要在信?卡到期還款?的前三天進?短信提醒 某…

微分方程求解及推導過程

微分方程求解及推導過程 本文將系統地推導微分方程: d z ( t ) d t A z ( t ) B u ( t ) \frac{\mathrm{d}\boldsymbol{z}(t)}{\mathrm{d}t} \boldsymbol{A}z(t) \boldsymbol{B}u(t) dtdz(t)?Az(t)Bu(t) 的通解過程,并分析其物理意義。 1. 初始條…

SQL 中 WHERE 與 HAVING 子句的使用

在編寫 SQL 查詢時,數據過濾是常見需求。WHERE 和 HAVING 子句雖然都用于篩選數據,但實際用法大不相同。本文通過具體示例對比兩者的核心區別,并結合實際場景演示聯合使用技巧,助力快速掌握這兩個關鍵工具的正確用法。 一、數據表…

Sampling – Model Context Protocol Specification

網頁鏈接 https://spec.modelcontextprotocol.io/specification/draft/client/sampling/ 主要內容概述 該網頁詳細介紹了Model Context Protocol (MCP) 中的“Sampling”功能。Sampling允許服務器通過客戶端請求語言模型(LLM)生成文本、音頻或圖像內容…

STM32-匯編2、外設

1.異常處理 reserved保留 ;將所有異常都初始化成一個函數 2.nop 空指令,什么不干&#xf…

匯能感知高品質的多光譜相機VSC02UA

VSC02UA概要 VSC02UA是一款高品質的200萬像素的光譜相機,適用于工業檢測、農業、醫療等領域。VSC02UA 包含 1600 行1200 列有源像素陣列、片上 10 位 ADC 和圖像信號處理器。它帶有 USB2.0 接口,配合專門的電腦上位機軟件使用,可進行圖像采集…

在C語言基礎上學Java【Java】【一】

眾所周知,Java是C風格的語言,對于學過C語言的人學Java可以快速適應。 廢話不多說,直接邊看代碼邊學。 數據類型,輸入和輸出 import java.util.Scanner;//為了使用Scanner public class a1 {//a1是類名,就是文件名&am…

Spring組件初始化擴展點:BeanPostProcessor

目錄 一、概述二、BeanPostProcessor的作用三、核心方法解析1、postProcessBeforeInitialization2、postProcessAfterInitialization 四、實戰案例案例1:實現簡單的屬性打印案例2:動態代理增強(模擬AOP) 五、常見應用場景六、注意…

多模態RAG框架(二)OmniSearch (Self-adaptive Planning Agent) and Dynamic VQA Dataset

OmniSearch:Benchmarking Multimodal RAG with Dynamic VQA Dataset and Self-adaptive Planning Agent 文章鏈接:2411.02937 Github鏈接:Alibaba-NLP/OmniSearch: Repo for Benchmarking Multimodal Retrieval Augmented Generation with …

Multisim學習-04 示波器的使用

我們選擇一個信號源來說明示波器的使用。 模擬電路中平常一般用ac,am,fm,clock就可以演示了。 截圖說明: 1)波的周期時長,首先應該調整這個參數,它的倒數就是頻率。這個參數如果不適合&#xf…

2025年03月16日Github流行趨勢

項目名稱:glance 項目地址url:https://github.com/glanceapp/glance項目語言:Go歷史star數:13768今日star數:889項目維護者:svilenmarkov, c0smicdev, wfg, DVDAndroid, jonasknobloch項目簡介:…