一 .EEPROM
在EPS32中已經(jīng)將EEPROM棄用。對(duì)于ESP32上的新應(yīng)用程序,建議使用NVS為首選項(xiàng)。提供EEPROM是為了向后兼容現(xiàn)有的Arduino應(yīng)用程序。
Arduino core for the ESP32中的EEPROM是在flash中開辟的存儲(chǔ)區(qū)域;
1. 調(diào)用EEPROM
調(diào)用#include 2. 初始化EEPROM /* * 初始化EEPROM * 參數(shù): size:容量大小, 默認(rèn)4096, size為需要讀寫的數(shù)據(jù)字節(jié)最大地址+1,取值1~4096; * 返回值: 設(shè)置成功否? */bool EEPROMClass::begin(size_t size) EEPROM.begin(4096); 3. 往EEPROM中寫一個(gè)字節(jié)的值 /* * 初始化EEPROM * 參數(shù): * address:地址 * val: 值 * 返回值: 無 */void EEPROMClass::write(int address, uint8_t val) EEPROM.write(1,'a'); 4. 真正的提交到EEPROM中保存 EEPROM.write();并不能保證斷電不丟失,需要提交. EEPROM.commit(); 5. EEPROM中讀取數(shù)據(jù) /* * 讀EEPROM * 參數(shù): * address:地址 * 返回值: 讀取的字節(jié) */uint8_t EEPROMClass::read(int address){} 例 通過串口往EEPROM中寫入, 按x可以讀取EEPROM中的數(shù), 給ESP32斷一次電,再上電讀取 #include Serial.begin(115200); EEPROM.begin(4096);}void loop(){ if (Serial.available()) { char temp = Serial.read(); if (temp != 'x') { EEPROM.write(1, temp); EEPROM.commit(); Serial.print('寫入EEPROM:'); Serial.println(EEPROM.read(1)); } else { Serial.print('EEPROM里的數(shù)據(jù)是:'); Serial.println(EEPROM.read(1)); } }} 二. NTP對(duì)時(shí) 1. NTP對(duì)時(shí)原理 連接網(wǎng)絡(luò), 從網(wǎng)絡(luò)中請(qǐng)求NTP對(duì)時(shí)數(shù)據(jù), 這里我們選取了阿里云的NTP服務(wù)器 ntp1.aliyun.com 此外,我們?cè)跂|八區(qū), 所以應(yīng)該偏移時(shí)間 8小時(shí) 2. 初始化一個(gè)NTP服務(wù)客戶端 NTPClient(UDP& udp, const char* poolServerName, int timeOffset, int updateInterval);/* 參數(shù): 1. udp : 創(chuàng)建的UDP連接 2. poolServerName : 服務(wù)器地址, 字符串類型 默認(rèn): time.nist.gov 3. timeOffset: 偏移時(shí)間, 默認(rèn)0, 單位秒, 北京時(shí)間需要偏移 3600*8 4. milliseconds : 更新時(shí)間間隔, 單位毫秒 */ 這里注意, 需要傳入一個(gè)UPD連接, 詳見后面的例子 3. 更新時(shí)間 timeClient.update(); 4. 獲取格式化的時(shí)間 timeClient.getFormattedTime(); 5.獲取時(shí)間戳(格林威治時(shí)間讀秒) timeClient.getEpochTime(); 6.獲取天(從NTP服務(wù)客戶端開啟至今的天數(shù)) 程序啟動(dòng)當(dāng)天是1 timeClient.getDay(); 7. 獲取時(shí)分秒 Serial.println(timeClient.getHours()); Serial.println(timeClient.getMinutes()); Serial.println(timeClient.getSeconds()); 8.單獨(dú)設(shè)置時(shí)間偏移 timeClient.setTimeOffset(3600*8); 9. 單獨(dú)設(shè)置更新頻率 timeClient.setUpdateInterval(1000); 10. 例子 #include Serial.begin(115200); WiFi.begin(ssid, password); while ( WiFi.status() != WL_CONNECTED ) { delay ( 500 ); Serial.print ( '.' ); } timeClient.begin();}void loop() { timeClient.update(); Serial.println(timeClient.getFormattedTime()); delay(1000);} 三. 藍(lán)牙透?jìng)?p>#include Serial.begin(115200); delay(5000); bt1.begin('ESP32BLUE'); Serial.println('藍(lán)牙串口透?jìng)饕呀?jīng)打開');}void loop(){ if (Serial.available()) { bt1.write(Serial.read()); } if (bt1.available()) { Serial.write(bt1.read()); } delay(20); }
上一篇:玩轉(zhuǎn) ESP32 + Arduino (十二) 通過MQTT協(xié)議上傳數(shù)據(jù)至OneNet云平臺(tái)
下一篇:玩轉(zhuǎn) ESP32 + Arduino (十) WIFI(AP模式) (STA模式) (smartConfig)
設(shè)計(jì)資源 培訓(xùn) 開發(fā)板 精華推薦
- 迅為恩智浦IMX6Q開發(fā)板Buildroot系統(tǒng)wifi測(cè)試
- 迅為imx6ull開發(fā)板Linux I2C驅(qū)動(dòng)實(shí)驗(yàn)-應(yīng)用程序與I2C通信
- 迅為恩智浦IMX6Q開發(fā)板系統(tǒng)固件TF卡燒寫
- 迅為IMX6ULL開發(fā)板Linux驅(qū)動(dòng)初探-最簡(jiǎn)單的設(shè)備驅(qū)動(dòng)-helloworld
- 迅為imx6ull開發(fā)板移植Debian文件系統(tǒng)
- 迅為imx6ull開發(fā)板Ubuntu文件系統(tǒng)測(cè)試
- 迅為imx6開發(fā)板QT系統(tǒng)移植FFmpeg-編譯FFmpeg
- 迅為IMX6ULL開發(fā)板Buildroot文件系統(tǒng)構(gòu)建-配置Busybox
- 迅為imx6開發(fā)板QT系統(tǒng)移植FFmpeg-編譯x264
- 2018電賽A題-電流信號(hào)檢測(cè)裝置(天津市)
- BackupProjects_hsjkd_personal_0_20230720
- TCR6DA1828U、200mA、2.8V 和 1.8V 輸出電壓雙路輸出 CMOS 低壓降穩(wěn)壓器的典型應(yīng)用
- WS2812立方燈5*5*6
- 使用 NXP Semiconductors 的 TDA8933T 的參考設(shè)計(jì)
- LT6656AIS6-3、3V 低功率精密高壓電源監(jiān)視器的典型應(yīng)用
- LT1021BCH-5 電壓基準(zhǔn)作為應(yīng)變計(jì)調(diào)節(jié)器的典型應(yīng)用
- SP6205 低噪聲、300mA 和 500mA CMOS LDO 穩(wěn)壓器的典型應(yīng)用電路
- LT1021BMH-5 電壓基準(zhǔn)的典型應(yīng)用,具有無電流限制的升壓輸出電流
- STEVAL-IHM042V1,基于 STM32F303CC 和 L6230 緊湊型低壓雙電機(jī)控制的評(píng)估板
- 芯馳科技X9SP:?jiǎn)涡酒摬匆惑w方案技術(shù)解析
- 廣汽發(fā)布人形機(jī)器人核心部件,計(jì)劃年內(nèi)小批量生產(chǎn)
- 汽車圈這場(chǎng)AI生死戰(zhàn),如何讀懂?
- 降低研發(fā)門檻!具身機(jī)器人時(shí)空智能三體套件免費(fèi)開放
- 智能駕駛:當(dāng)技術(shù)狂奔撞上安全圍墻
- 超快充能否讓固態(tài)電池變成雞肋,提升充電速度能實(shí)現(xiàn)彎道超車嗎?
- 【行業(yè)數(shù)據(jù)】為什么BMW在第六代車型上選用大圓柱電池?
- 我國(guó)固態(tài)電池相關(guān)專利申請(qǐng)量已達(dá)1.3萬項(xiàng)
- 工信部發(fā)布2025年標(biāo)準(zhǔn)工作要點(diǎn):全固態(tài)電池標(biāo)準(zhǔn)體系建設(shè)加速
- “鋰王”固態(tài)電池獲重大突破!400Wh/kg級(jí)產(chǎn)品開啟商業(yè)化沖刺
- 月度原創(chuàng)精選評(píng)選2018年2月(總第2期)
- 有獎(jiǎng)直播|MPS 新一代磁角度傳感器MA600介紹與應(yīng)用
- 免費(fèi)申請(qǐng) | Nordic Semiconductor nPM1300-EK PMIC 評(píng)估套件
- 開發(fā)板芯幣競(jìng)拍,每日一款!今日競(jìng)拍開發(fā)板:Banana PI D1
- PI自研氮化鎵助力實(shí)現(xiàn)更小、更輕、更高效的充電器 看視頻好禮送!
- VISHAY工業(yè)電源主題月 幸運(yùn)闖關(guān)贏大獎(jiǎng)!
- 新一輪EE_FPGA學(xué)習(xí)計(jì)劃開始啦!
- 7小技巧:如何選擇MCU和電源讓您的嵌入式電路設(shè)計(jì)更高效
- 電腦鼠控制系統(tǒng)工作原理及設(shè)計(jì)方案
- 智能實(shí)驗(yàn)室控制系統(tǒng)設(shè)計(jì)及工作原理
- Precision32芯片方案介紹 延續(xù)8位MCU優(yōu)勢(shì)
- 淺談單片機(jī)軟件復(fù)位方法
- 2440裸機(jī)編程之九 LCD液晶顯示器
- 2440裸機(jī)編程之十 觸摸屏
- 2440裸機(jī)編程之十一 GPRS
- 關(guān)于AVR單片機(jī),你了解多少?
- ATMEGA16L實(shí)現(xiàn)時(shí)間和溫度的循環(huán)顯示程序分享