- #include <Arduino.h>
- #include <OneWire.h>
- #include <DallasTemperature.h>
- #include "GetTem.h"
- #include "DisDig.h"
- #include "Button.h"
- #include "Globals.h"
- #include "EEPROM.h"
- #include "E2PROM.h"
- KEYRETURN event;
- float Value;
- bool isFTemp = false;
- //蓝牙现在最多只能发几十字节
- void setup() {
- htm1640_init(); //初始化
- SensorInit();
- ButtonInit();
- init10msTimer();
- EP_Init();
- isFTemp = LoaderTemp();
- FTempFlag = (isFTemp == 1) ? 1 : 0;
- clear();
-
- LedOff();
- delay(50);
- }
- void loop()
- {
-
- Temp = GetTemperature();
- Value = FTempFlag ? CTTransFT(Temp) : Temp;
- ShowTemp(Value);
- CheckTime();
- PressOn();
- }
- void PressOn()
- {
- KEYRETURN Key = GetKeyvalue();
- switch(Key)
- {
- case S_KEY:
- // 处理短按事件
- HandleAct();
- if(LowLightFlag == 1)
- {
- setBrightness(1);
- LowLightFlag = 0;
- break;
- }
- TemperatureAct();
- break;
-
- case L_KEY:
- // 处理长按5秒事件
- HandleAct();
- setBrightness(1);
- FTempFlag = !FTempFlag;
- SaveTemp(FTempFlag);
- break;
-
- default:
- break;
- }
- }
- #define EEPROM_SIZE 512
- #define TEMP_ADDR 0
- void EP_Init()
- {
- Serial.begin(9600);
- EEPROM.begin(EEPROM_SIZE);
- }
- bool LoaderTemp()
- {
- byte UnitFlag = EEPROM.read(TEMP_ADDR);
- return (UnitFlag == 1);
- }
- void SaveTemp(bool Unit)
- {
- EEPROM.write(TEMP_ADDR, Unit ? 1 : 0);
- EEPROM.commit();
- }
复制代码 各位大佬,我想请问一下为什么我使用EEPROM要存储温度单位标志时,在断电重新开机后会闪现出之前存储过的数据。这种情况是使用EEPROM之后才会出现的。
|