Bläddra i källkod

Signed-off-by: zhuhongbin <kptzhu@163.com>
1/修改了flash保存,如果失败会重试保存
2/重量提取代码将公共部分做了一个通用函数

zhuhongbin 2 år sedan
förälder
incheckning
7828299bbd
7 ändrade filer med 268 tillägg och 812 borttagningar
  1. 5 5
      MDK-ARM/test.uvprojx
  2. 2 3
      Src/main.c
  3. 1 1
      Src/system_stm32f1xx.c
  4. 2 2
      tmr/display.c
  5. 4 2
      tmr/flash.c
  6. 3 1
      tmr/plan.c
  7. 251 798
      tmr/weight.c

+ 5 - 5
MDK-ARM/test.uvprojx

@@ -110,13 +110,13 @@
         </CommonProperty>
         <DllOption>
           <SimDllName>SARMCM3.DLL</SimDllName>
-          <SimDllArguments>-REMAP</SimDllArguments>
-          <SimDlgDll>DCM.DLL</SimDlgDll>
-          <SimDlgDllArguments>-pCM3</SimDlgDllArguments>
+          <SimDllArguments>-REMAP -MPU</SimDllArguments>
+          <SimDlgDll>DARMSTM.DLL</SimDlgDll>
+          <SimDlgDllArguments>-pSTM32F103RC</SimDlgDllArguments>
           <TargetDllName>SARMCM3.DLL</TargetDllName>
           <TargetDllArguments></TargetDllArguments>
-          <TargetDlgDll>TCM.DLL</TargetDlgDll>
-          <TargetDlgDllArguments>-pCM3</TargetDlgDllArguments>
+          <TargetDlgDll>TARMSTM.DLL</TargetDlgDll>
+          <TargetDlgDllArguments>-pSTM32F103RC</TargetDlgDllArguments>
         </DllOption>
         <DebugOption>
           <OPTHX>

+ 2 - 3
Src/main.c

@@ -189,10 +189,9 @@ int main(void)
 	thread_beep_init();
 	output1_off();
 	output2_off();
-	AT_off();
-	
+	AT_on();
 
- // rt_kprintf("\n \\ | /\n");
+  rt_kprintf("\n \\ | /\n");
 	rt_sem_take(thread_init_sem, RT_WAITING_FOREVER);   //µÈ´ý³õʼ»¯½ø³ÌÍê±Ï
 //			 init_allflash();
 //			 beep();			

+ 1 - 1
Src/system_stm32f1xx.c

@@ -99,7 +99,7 @@
 #if defined(USER_VECT_TAB_ADDRESS)
 /*!< Uncomment the following line if you need to relocate your vector Table
      in Sram else user remap will be done in Flash. */
-/* #define VECT_TAB_SRAM */
+//#define VECT_TAB_SRAM
 #if defined(VECT_TAB_SRAM)
 #define VECT_TAB_BASE_ADDRESS   SRAM_BASE       /*!< Vector Table base address field.
                                                      This value must be a multiple of 0x200. */

+ 2 - 2
tmr/display.c

@@ -609,7 +609,7 @@ static void sendRemote(void *parameter)
             }
             else  if (XbeeConst_UseAPI>3) {
 							  rt_sem_take(uart3_lock, RT_WAITING_FOREVER);	
-								AT_on();	
+							//	AT_on();	
 								for(int xcount=0;xcount<2;xcount++){
 									XbeeConst_PRemoteTxBuf0 = BleApp2MakeFrame(0xFFFF, 0x00, xcount, XbeeConst_FRemoteTxBuf);
 
@@ -620,7 +620,7 @@ static void sendRemote(void *parameter)
 									rt_thread_mdelay(100);			
 								}							
 							 					
-								AT_off();
+							//	AT_off();
 								rt_sem_release(uart3_lock);								
 						}
 						else

+ 4 - 2
tmr/flash.c

@@ -19,7 +19,7 @@ unsigned char eid[10];    //
 
 uint8_t XbeeConst_DeviceAddress = 0x01;         
 uint8_t XbeeConst_NetAddress = 0x00;
-uint8_t XbeeConst_UseAPI = 0x00;
+uint8_t XbeeConst_UseAPI = 0x01;
 uint8_t WeightConst_TQ = 0x05;//0x05;
 uint8_t WeightConst_BLE = 0;
 uint8_t WeightConst_ChanCheShu = 0x02;
@@ -105,7 +105,9 @@ static fdb_time_t get_keydbtime(void)
 void write_Flash(const char *key, const void *value_buf, size_t buf_len)
 {
 		struct fdb_blob blob;
-		fdb_kv_set_blob(&kvdb, key, fdb_blob_make(&blob, (void *)value_buf, buf_len));
+	  fdb_err_t tmperr = fdb_kv_set_blob(&kvdb, key, fdb_blob_make(&blob, (void *)value_buf, buf_len));
+	  while ( tmperr == FDB_ERASE_ERR || tmperr == FDB_WRITE_ERR)
+			tmperr = fdb_kv_set_blob(&kvdb, key, fdb_blob_make(&blob, (void *)value_buf, buf_len));
 }
 
 void reset_read_ts(const char key)

+ 3 - 1
tmr/plan.c

@@ -591,8 +591,10 @@ void getTargetWeight(void)
 //	WeightConst_WeightBegin = WeightConst_WeightCur;
     if (WeightConst_Product_JS == 1) { //这段计算出实际目标重量
 				rt_sem_take(weight_lock, RT_WAITING_FOREVER);
-			  if (WeightConst_WeightBegin == -30000)
+			  if (WeightConst_WeightBegin == -30000){
 					 WeightConst_WeightBegin = WeightConst_WeightCur;
+					 write_Flash("beginweight", &WeightConst_WeightBegin, sizeof(WeightConst_WeightBegin)); 
+				}
 				rt_sem_release(weight_lock);
 				
         if (pf_comp.data.addorout == 0)

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 251 - 798
tmr/weight.c


Vissa filer visades inte eftersom för många filer har ändrats