From 96ee0a77d44651ea3867f847291ee0a364bb10ba Mon Sep 17 00:00:00 2001 From: penglei <1624952103@qq.com> Date: Tue, 11 Jun 2024 17:53:04 +0800 Subject: [PATCH] =?utf8?q?=E8=A7=A3=E5=86=B3=E6=8C=87=E5=8D=97=E9=92=88?= =?utf8?q?=E6=A0=A1=E5=87=86=E4=B8=8D=E8=BF=87=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../peripheral/cywee/src/board_yh601s.c | 2 +- .../peripheral/mag/mmc5603/mmc5603_main.c | 57 +++++++++++++++++-- 2 files changed, 54 insertions(+), 5 deletions(-) diff --git a/code/sdk/drivers/peripheral/cywee/src/board_yh601s.c b/code/sdk/drivers/peripheral/cywee/src/board_yh601s.c index cda4297ca..28bab83cf 100644 --- a/code/sdk/drivers/peripheral/cywee/src/board_yh601s.c +++ b/code/sdk/drivers/peripheral/cywee/src/board_yh601s.c @@ -262,7 +262,7 @@ int CWM_OS_dbgPrintf(const char * format,...) CWM_OS_dbgOutput(InputBuff); return 0; } -#define CWM_DATA_PATH "/system/cyweedata" +#define CWM_DATA_PATH "/user/userdata/sport/stepcount" void CWM_OS_saveData(int* data, uint32_t len){ FILE * fp = fopen(CWM_DATA_PATH,"wb"); diff --git a/code/sdk/drivers/peripheral/mag/mmc5603/mmc5603_main.c b/code/sdk/drivers/peripheral/mag/mmc5603/mmc5603_main.c index 81da814d5..3a3751a98 100644 --- a/code/sdk/drivers/peripheral/mag/mmc5603/mmc5603_main.c +++ b/code/sdk/drivers/peripheral/mag/mmc5603/mmc5603_main.c @@ -86,12 +86,19 @@ int mmc5603_start(void) * If there is no parameter saved, ReadPara() should return -1, else return 1; * If there is no para saved, pass the default value to the algorithm library */ - if(ReadPara(saveData)==1){ - for(i=0;i<4;i++){ + // if(ReadPara(saveData)==1){ + // for(i=0;i<4;i++){ + // mag_hmm[i] = saveData[i]; + // } + // } + + if(ReadPara_infile(saveData,4)==1) + { + for(i=0;i<4;i++) + { mag_hmm[i] = saveData[i]; } - } - + } /* Initial the acc, mag, and calibrated parameters * if already saved the calibrated offset and radius last time, read it out and init the magOffset and magRadius */ @@ -262,6 +269,47 @@ int SavePara(float *p) return 1; } +#define MMC_DATA_PATH "/user/userdata/mmc_para" + +int SavePara_infile(float *p,uint32_t len) +{ + FILE * fp = fopen(MMC_DATA_PATH,"wb"); + int ret = 0; + if(fp==NULL) + { + PRINT("open %s failed\n",MMC_DATA_PATH); + return -1; + } + + ret = fwrite(p,1,len,fp); + if(ret==0) + { + PRINT("fwrite failed %d\n",ret); + return -1; + } + + fclose(fp); + return 1; +} + +int ReadPara_infile(float *p,uint32_t len) +{ + FILE * fp = fopen(MMC_DATA_PATH,"rb"); + if(fp==NULL) + { + PRINT("open %s failed\n",MMC_DATA_PATH); + + return -1; + } + int ret =fread(p,1,len,fp); + if(ret==0) + { + PRINT("fread failed %d\n",ret); + return -1; + } + fclose(fp); + return 1; +} /* Convert the sensor coordinate to right-front-up coordinate system; */ void acc_coordinate_raw_to_real(int layout, float *in, float *out) @@ -388,6 +436,7 @@ int mag_service_get_iAccuracy(void) int mmc5603_stop(void) { + SavePara_infile(saveData,4); MMC5603_Disable(); return 0; } -- 2.17.1