Руслан Бредун / Mbed 2 deprecated STM32-MC_node

Dependencies:   mbed Watchdog stm32-sensor-base2

Revision:
9:859bcb293e46
Parent:
8:c3cffab85b0d
Child:
10:0b7f23df690a
--- a/main.cpp	Tue Jul 28 14:25:33 2020 +0000
+++ b/main.cpp	Thu Jul 30 13:04:10 2020 +0000
@@ -1,18 +1,21 @@
 #include <global.h>
-
+ 
 RS485 RS485(UART2_TX,UART2_RX,DE_TXD_2); // Tx, Rx , !RE and DE MAX485 pin
  
 volatile bool serialArrived = false;
 int n=0;
 char a;
 bool send_flag = false;
-
+ 
 Timer timer;
 typedef uint8_t byte;
-
-DigitalOut select(DE_TXD_1);
+ 
+DigitalOut select(DE_TXD_2);
 byte regvalue[1] ;
  byte data[6];
+ 
+ byte data_t[9] = {0x02,0x05,0x01,0x49,0x01,0x03,0xf2,0xde};//your data
+ 
 const unsigned char CRC7_POLY = 0x91;
  
 unsigned char getCRC(unsigned char message[], unsigned char length)
@@ -39,48 +42,60 @@
     E18_D80NK infared1 (IR1_PB12_OUT);
     E18_D80NK infared2 (IR2_PB13_OUT);
     
-    select = 1;
+    select =0;
     
     sensor1.setRanges(10, 200);
     
     memset(data,0,sizeof(data));
-    float distance;
+    int distance;
+    regvalue[0] = 1;
+    byte in;
+    
     
     while(true) {      
-         if(RS485.readable() >0){
+        
            //memset(regvalue,0,sizeof(regvalue));
            //wait_ms(100);
-           RS485.recvMsg(regvalue,sizeof(uint8_t),30);
-           }
+           //RS485.recvMsg(regvalue,sizeof(regvalue),500);
+    
         //printf("Done\n");
+       if (RS485.readable() > 0)
+      {
+
+         in = RS485.getc();
         
-        if((int)regvalue[1] == 4 )
+        }
+        
+        if(in == '\4')
         {
-            select = 1;
+            
             timer.reset();
             timer.start();
             sensor1.startMeasurement();
             
-            distance = sensor1.getDistance_cm();
-            data[0] = (uint8_t)(distance >> 24) ;
-            data[1] = (uint8_t)(distance >> 16) ; 
-            data[2] = (uint8_t)(distance >> 8) ;
-            data[3] = (uint8_t)distance  ;
-            data[4] = (uint8_t)infared1.checkObstacle();
-            data[5] = (uint8_t)infared2.checkObstacle();
+            distance = sensor1.getDistance_mm();
+            data[0] = (distance >> 24) ;
+            data[1] =(distance >> 16) ; 
+            data[2] = (distance >> 8) ;
+            data[3] = distance  ;
+            data[4] = infared1.checkObstacle();
+            data[5] = infared2.checkObstacle();
+            select = 1;
             RS485.sendMsg(data,sizeof(data));
+             wait_ms(20);
+             select = 0 ;
             timer.stop();
             send_flag = false;
             wait_ms(20);
+            in = '\1';
             
-            select = 0 ;
+            
         }
-
+ 
     }
     
-
-
+ 
+ 
 #endif
-
-}
-
+ 
+}
\ No newline at end of file