Browse Source

改mb接口

guohui 1 year ago
parent
commit
dc128f1e84
2 changed files with 13 additions and 17 deletions
  1. 4 10
      f407/applications/mb.c
  2. 9 7
      f407/applications/power.c

+ 4 - 10
f407/applications/mb.c

@@ -146,7 +146,7 @@ int mb_deinit(void *h)
 
 int mb_read(void *h, uint8_t addr, uint16_t reg, uint16_t *data, int cnt, int timeout)
 {
-    int r=-1,sz=0;
+    int r=-1;
     mb_handle_t *mh=(mb_handle_t*)h;
     
     if(!mh || !data || cnt<=0) {
@@ -185,19 +185,16 @@ int mb_read(void *h, uint8_t addr, uint16_t reg, uint16_t *data, int cnt, int ti
 #else
     mb_set_tmo(mh->hinst, timeout, 50);
     mb_set_slave(mh->hinst, addr);
-    sz = mb_read_regs(mh->hinst, reg, cnt, data);
-//    if(sz==cnt) {
-//        r = 0;
-//    }
+    r = mb_read_regs(mh->hinst, reg, cnt, data);
 #endif
     
-    return sz;
+    return r;
 }
 
 
 int mb_write(void *h, uint8_t addr, uint16_t reg, uint16_t *data, int cnt)
 {
-    int r=-1,sz;
+    int r=-1;
     mb_handle_t *mh=(mb_handle_t*)h;
     
     if(!mh || !data || cnt<=0) {
@@ -209,9 +206,6 @@ int mb_write(void *h, uint8_t addr, uint16_t reg, uint16_t *data, int cnt)
 #else
     mb_set_slave(mh->hinst, addr);
     r = mb_write_regs(mh->hinst, reg, cnt, data);
-//    if(sz==cnt) {
-//        r = 0;
-//    }
 #endif
     
     return r;

+ 9 - 7
f407/applications/power.c

@@ -153,26 +153,28 @@ static void memswap(uint8_t *buf, int len)
 }
 static int read_reg(power_handle_t *h, uint8_t addr, uint16_t reg, uint16_t *data, int cnt)
 {
-    int i,r;
+    int i,r=0;
     for(i=0; i<RETRY_TIMES; i++) {
         r = mb_read(h->mb, addr, reg, data, cnt, BRD_TIMEOUT);
-        if(r==0) break;
+        if(r==cnt) {
+            break;
+        }
     }
-    return r;
+    return (r==cnt)?0:-1;
 }
 static int write_reg(power_handle_t *h, uint8_t addr, uint16_t reg, uint16_t *data, int cnt)
 {
-    int i,r;
+    int i,r=0;
     for(i=0; i<RETRY_TIMES; i++) {
         r = mb_write(h->mb, addr, reg, data, cnt);
-        if(r==0) break;
+        if(r==cnt) break;
     }
-    return r;
+    return (r==cnt)?0:-1;
 }
 ////////////////////////////////////////////////////////////////////
 static int get_key(power_handle_t *h, uint8_t addr, board_key_t *key)
 {
-    int i,r=-1;
+    int i,r;
     uint16_t tmp[2];
     
     if(h->prod->pwr_type==PDU_AC_I1O1 || h->prod->pwr_type==PDU_AC_I3O1_H) {