瀏覽代碼

Soft en cours

remy 4 年之前
父節點
當前提交
b096f47e78

+ 1 - 0
Doc/.~lock.Aide Soft ordinateur.ods#

@@ -0,0 +1 @@
+,remy,lemien,22.11.2021 14:29,file:///home/remy/.config/libreoffice/4;

+ 1 - 1
Soft/ESP12F/ESP12F.h

@@ -10,7 +10,7 @@
 
 #define MASKMES 0XF0
 
-#define STATUS    0xA0
+#define STATUS    0x00
 #define READACTI  0x10
 #define WRITACTI  0x20
 #define READVENT  0x30

+ 356 - 337
Soft/ESP12F/ESP12F.ino

@@ -6,153 +6,169 @@
 /* **************************************************************
 	Fonction Perso
  ***************************************************************/
+void delay_perso(uint32_t i) {
+  unsigned long timeout = millis() + i;
+  while (millis() < timeout)
+    i++;
+}
+
 uint8_t uart_send(uint8_t *in, uint8_t nbTr, uint8_t *out) {
-	int i;
-	for (i = 0; i < nbTr; i++)
-		Serial.write(in[i]);
-	for (i = 0; i < 8 - nbTr; i++)
-		Serial.write(0x41);
-
-	int time = 0;
-	while (Serial.available() < SIZEMES) {
-		//todo delay(1);
-		time++;
-		if (time > 1000)
-			return 1;
-	}
-	Serial.readBytes(out, SIZEMES);
-	if (out[1]&MASKMES != in[1] & MASKMES) {
-		return 2;
-	}
-	return 0;
+  int i;
+  for (i = 0; i < nbTr; i++)
+    Serial.write(in[i]);
+  for (i = 0; i < SIZEMES - nbTr; i++)
+    Serial.write(0x41);
+
+  int time = 0;
+  while (Serial.available() < SIZEMES) {
+    delay(2);
+    time++;
+    if (time > 1000) {
+      return 1;
+    }
+  }
+  
+  Serial.readBytes(out, SIZEMES);
+  
+  Serial.println(out[0]);
+  if (out[1]&MASKMES != in[1] & MASKMES) {
+    return 2;
+  }
+  return 0;
 }
 
 
 uint8_t transmit(uint8_t *in, uint8_t nbTr, uint8_t *out) {
-	int i = 0;
-	int res = uart_send(in, nbTr, out);
-	/*while (i <= 3) { //Todo
-		//delay(500);
-   Serial.println(i);
-		res = uart_send(in, nbTr, out);
-		i++;
-	}*/
- 
-	return res;
+  int i = 0;
+  int res;
+  while (res=uart_send(in,nbTr,out)){
+    if(i>3){
+      break;
+    }
+    delay(500);
+  	i++;
+    }
+
+Serial.println(res);
+  return res;
 }
 
 
 void SyncRTC() {
-	uint8_t nbTr = 8;
-	uint8_t in[nbTr];
-	uint8_t out[SIZEMES];
-
-	in[0] = SYNCRTC;
-	in[1] = year() - 2000;
-	in[2] = month();
-	in[3] = day();
-	uint8_t weekd = weekday() - 1;
-	if (weekday() == 1) weekd = 0;
-	in[4] = weekd;
-	in[5] = hour();
-	in[6] = minute();
-	in[7] = second();
-
-	if (transmit(in, nbTr, out)) {
-		;// todo TODO test si retour NOK
-	}
-	;// todo return 0;
+  uint8_t nbTr = 8;
+  uint8_t in[nbTr];
+  uint8_t out[SIZEMES];
+
+  in[0] = SYNCRTC;
+  in[1] = year() - 2000;
+  in[2] = month();
+  in[3] = day();
+  uint8_t weekd = weekday() - 1;
+  if (weekday() == 1) weekd = 0;
+  in[4] = weekd;
+  in[5] = hour();
+  in[6] = minute();
+  in[7] = second();
+
+  if (transmit(in, nbTr, out)) {
+    ;// todo TODO test si retour NOK
+  }
+  ;// todo return 0;
 }
 
 float convTemp(uint8_t ent) {
-	return (((float)ent) / 10.0) + 10.0;
+  //Serial.print("ent : ");
+  //Serial.println(ent);
+  return (((float)ent) / 10.0) + 10.0;
 }
 
 float convPH(uint8_t ent) {
-	//TODO
-	return 8.2;
+  //TODO
+  return 8.2;
 }
 
 int convSalinity(uint8_t ent) {
-	//TODO
-	return 1025;
+  //TODO
+  return 1025;
 }
 
 void Status() {
-	uint8_t nbTr = 1;
-	uint8_t in[nbTr];
-	uint8_t out[SIZEMES];
-
-	in[0] = STATUS;
-
-	if (transmit(in, nbTr, out)) {
-		;// todo return 1; // TODO Erreur
-	}
-	if (out[5] & 0x80 == 0x80)
-		TechBas.on();
-	else
-		TechBas.off();
-
-	if (out[5] & 0x40 == 0x40)
-		TechHau.on();
-	else
-		TechHau.off();
-
-	if (out[5] & 0x20 == 0x20)
-		CuveHau.on();
-	else
-		CuveHau.off();
-
-	if (out[5] & 0x10 == 0x10)
-		Reserve.on();
-	else
-		Reserve.off();
-
-
-	float air = convTemp(out[1]);
-	float eau = convTemp(out[2]);
-	Blynk.virtualWrite(V6, air);
-	if (air <= 18.0)
-		Blynk.notify("Temp air < 18°C");
-	if (air >= 29.0)
-		Blynk.notify("Temp air > 29°C");
-
-	Blynk.virtualWrite(V7, eau);
-	if (eau <= 24.0)
-		Blynk.notify("Temp eau < 24°C");
-	if (eau >= 27.0)
-		Blynk.notify("Temp eau > 27°C");
-
-	Blynk.virtualWrite(V8, convPH(out[3]));
-	//TODO notif PH
-
-	Blynk.virtualWrite(V9, convSalinity(out[4]));
-	//TODO notif sel
-
-	//TODO gestion erreur
-
-	in[0] = READACTI;
-	if (transmit(in, nbTr, out))
-		;// todo return 1; // TODO Erreur
-
-
-	Blynk.virtualWrite(V20, (out[1] &  ACTIREM) >> 0);
-	Blynk.virtualWrite(V21, (out[1] &  ACTIECU) >> 1);
-	Blynk.virtualWrite(V22, (out[1] &  ACTICHA) >> 2);
-	Blynk.virtualWrite(V23, (out[1] &  ACTIBGE) >> 3);
-	Blynk.virtualWrite(V24, (out[1] &  ACTIBR1) >> 4);
-	Blynk.virtualWrite(V25, (out[1] &  ACTIBR2) >> 5);
-	Blynk.virtualWrite(V26, (out[1] &  ACTIBR2) >> 6);
-	Blynk.virtualWrite(V27, (out[1] &  ACTINOU) >> 7);
-	
-	in[0] = READVENT;
-	if (transmit(in, nbTr, out))
-		;// todo return 1; // TODO Erreur
-	
-	Blynk.virtualWrite(V40, (out[1] &  0xF0) >> 4);
-	Blynk.virtualWrite(V41, (out[1] &  0x0F) >> 0);
-
-	;// todo return 0;
+  uint8_t nbTr = 1;
+  uint8_t in[nbTr];
+  uint8_t out[SIZEMES];
+
+  in[0] = STATUS;
+
+  if (transmit(in, nbTr, out)) {
+    exit;
+  }
+  if (out[5] & 0x80 == 0x80)
+    TechBas.on();
+  else
+    TechBas.off();
+
+  if (out[5] & 0x40 == 0x40)
+    TechHau.on();
+  else
+    TechHau.off();
+
+  if (out[5] & 0x20 == 0x20)
+    CuveHau.on();
+  else
+    CuveHau.off();
+
+  if (out[5] & 0x10 == 0x10)
+    Reserve.on();
+  else
+    Reserve.off();
+
+
+  float air = convTemp(out[1]);
+  float eau = convTemp(out[2]);
+
+  /*
+    Blynk.virtualWrite(V6, air);
+    if (air <= 18.0)
+  	Blynk.notify("Temp air < 18°C");
+    if (air >= 29.0)
+  	Blynk.notify("Temp air > 29°C");
+
+    Blynk.virtualWrite(V7, eau);
+    if (eau <= 24.0)
+  	Blynk.notify("Temp eau < 24°C");
+    if (eau >= 27.0)
+  	Blynk.notify("Temp eau > 27°C");
+
+    Blynk.virtualWrite(V8, convPH(out[3]));
+    //TODO notif PH
+
+    Blynk.virtualWrite(V9, convSalinity(out[4]));
+    //TODO notif sel
+
+    //TODO gestion erreur
+
+    in[0] = READACTI;
+    if (transmit(in, nbTr, out))
+  	//Serial.println("Erreur");// todo return 1; // TODO Erreur
+
+
+    Blynk.virtualWrite(V20, (out[1] &  ACTIREM) >> 0);
+    Blynk.virtualWrite(V21, (out[1] &  ACTIECU) >> 1);
+    Blynk.virtualWrite(V22, (out[1] &  ACTICHA) >> 2);
+    Blynk.virtualWrite(V23, (out[1] &  ACTIBGE) >> 3);
+    Blynk.virtualWrite(V24, (out[1] &  ACTIBR1) >> 4);
+    Blynk.virtualWrite(V25, (out[1] &  ACTIBR2) >> 5);
+    Blynk.virtualWrite(V26, (out[1] &  ACTIBR2) >> 6);
+    Blynk.virtualWrite(V27, (out[1] &  ACTINOU) >> 7);
+
+    in[0] = READVENT;
+    if (transmit(in, nbTr, out))
+  	//Serial.println("Erreur");// todo return 1; // TODO Erreur
+
+    Blynk.virtualWrite(V40, (out[1] &  0xF0) >> 4);
+    Blynk.virtualWrite(V41, (out[1] &  0x0F) >> 0);
+
+    ;// todo return 0;*/
 }
 
 /* **************************************************************
@@ -160,238 +176,238 @@ void Status() {
  ***************************************************************/
 
 BLYNK_CONNECTED() {
-	rtc.begin();
+  rtc.begin();
 }
 
 BLYNK_WRITE(V20) {
-	//Remonter
-
-	int val = param.asInt() << 0;
-	uint8_t in[2];
-	uint8_t nbTr = 2;
-	uint8_t out[8];
-
-	//lecture ancien param
-	in[0] = READACTI;
-	if (transmit(in, 1, out)) {
-		;// todo return 1;
-	}
-	
-	//envoie nouveau parametre
-	in[0] = WRITACTI;
-	in[1] = out[1] & (!ACTIREM | val);
-	if (transmit(in, nbTr, out)) {
-		;// todo return 1;
-	}
+  //Remonter
+
+  int val = param.asInt() << 0;
+  uint8_t in[2];
+  uint8_t nbTr = 2;
+  uint8_t out[8];
+
+  //lecture ancien param
+  in[0] = READACTI;
+  if (transmit(in, 1, out)) {
+    ;// todo return 1;
+  }
+
+  //envoie nouveau parametre
+  in[0] = WRITACTI;
+  in[1] = out[1] & (!ACTIREM | val);
+  if (transmit(in, nbTr, out)) {
+    ;// todo return 1;
+  }
 }
 
 BLYNK_WRITE(V21) {
-	//Ecumeur
-
-	int val = param.asInt() << 1;
-	uint8_t in[2];
-	uint8_t nbTr = 2;
-	uint8_t out[8];
-
-	//lecture ancien param
-	in[0] = READACTI;
-	if (transmit(in, 1, out)) {
-		;// todo return 1;
-	}
-	
-	//envoie nouveau parametre
-	in[0] = WRITACTI;
-	in[1] = out[1] & (!ACTIECU | val);
-	if (transmit(in, nbTr, out)) {
-		;// todo return 1;
-	}
+  //Ecumeur
+
+  int val = param.asInt() << 1;
+  uint8_t in[2];
+  uint8_t nbTr = 2;
+  uint8_t out[8];
+
+  //lecture ancien param
+  in[0] = READACTI;
+  if (transmit(in, 1, out)) {
+    ;// todo return 1;
+  }
+
+  //envoie nouveau parametre
+  in[0] = WRITACTI;
+  in[1] = out[1] & (!ACTIECU | val);
+  if (transmit(in, nbTr, out)) {
+    ;// todo return 1;
+  }
 }
 
 BLYNK_WRITE(V22) {
-	//Chauffage
-
-	int val = param.asInt() << 2;
-	uint8_t in[2];
-	uint8_t nbTr = 2;
-	uint8_t out[8];
-
-	//lecture ancien param
-	in[0] = READACTI;
-	if (transmit(in, 1, out)) {
-		;// todo return 1;
-	}
-	
-	//envoie nouveau parametre
-	in[0] = WRITACTI;
-	in[1] = out[1] & (!ACTICHA | val);
-	if (transmit(in, nbTr, out)) {
-		;// todo return 1;
-	}
+  //Chauffage
+
+  int val = param.asInt() << 2;
+  uint8_t in[2];
+  uint8_t nbTr = 2;
+  uint8_t out[8];
+
+  //lecture ancien param
+  in[0] = READACTI;
+  if (transmit(in, 1, out)) {
+    ;// todo return 1;
+  }
+
+  //envoie nouveau parametre
+  in[0] = WRITACTI;
+  in[1] = out[1] & (!ACTICHA | val);
+  if (transmit(in, nbTr, out)) {
+    ;// todo return 1;
+  }
 }
 
 BLYNK_WRITE(V23) {
-	//Brassage Général
-
-	int val = param.asInt() << 3;
-	uint8_t in[2];
-	uint8_t nbTr = 2;
-	uint8_t out[8];
-
-	//lecture ancien param
-	in[0] = READACTI;
-	if (transmit(in, 1, out)) {
-		;// todo return 1;
-	}
-	
-	//envoie nouveau parametre
-	in[0] = WRITACTI;
-	in[1] = out[1] & (!ACTIBGE | val);
-	if (transmit(in, nbTr, out)) {
-		;// todo return 1;
-	}
+  //Brassage Général
+
+  int val = param.asInt() << 3;
+  uint8_t in[2];
+  uint8_t nbTr = 2;
+  uint8_t out[8];
+
+  //lecture ancien param
+  in[0] = READACTI;
+  if (transmit(in, 1, out)) {
+    ;// todo return 1;
+  }
+
+  //envoie nouveau parametre
+  in[0] = WRITACTI;
+  in[1] = out[1] & (!ACTIBGE | val);
+  if (transmit(in, nbTr, out)) {
+    ;// todo return 1;
+  }
 }
 
 BLYNK_WRITE(V24) {
-	//Brassage1
-
-	int val = param.asInt() << 4;
-	uint8_t in[2];
-	uint8_t nbTr = 2;
-	uint8_t out[8];
-
-	//lecture ancien param
-	in[0] = READACTI;
-	if (transmit(in, 1, out)) {
-		;// todo return 1;
-	}
-	
-	//envoie nouveau parametre
-	in[0] = WRITACTI;
-	in[1] = out[1] & (!ACTIBR1 | val);
-	if (transmit(in, nbTr, out)) {
-		;// todo return 1;
-	}
+  //Brassage1
+
+  int val = param.asInt() << 4;
+  uint8_t in[2];
+  uint8_t nbTr = 2;
+  uint8_t out[8];
+
+  //lecture ancien param
+  in[0] = READACTI;
+  if (transmit(in, 1, out)) {
+    ;// todo return 1;
+  }
+
+  //envoie nouveau parametre
+  in[0] = WRITACTI;
+  in[1] = out[1] & (!ACTIBR1 | val);
+  if (transmit(in, nbTr, out)) {
+    ;// todo return 1;
+  }
 }
 
 
 BLYNK_WRITE(V25) {
-	//Brassage2
-
-	int val = param.asInt() << 5;
-	uint8_t in[2];
-	uint8_t nbTr = 2;
-	uint8_t out[8];
-
-	//lecture ancien param
-	in[0] = READACTI;
-	if (transmit(in, 1, out)) {
-		;// todo return 1;
-	}
-	
-	//envoie nouveau parametre
-	in[0] = WRITACTI;
-	in[1] = out[1] & (!ACTIBR2 | val);
-	if (transmit(in, nbTr, out)) {
-		;// todo return 1;
-	}
+  //Brassage2
+
+  int val = param.asInt() << 5;
+  uint8_t in[2];
+  uint8_t nbTr = 2;
+  uint8_t out[8];
+
+  //lecture ancien param
+  in[0] = READACTI;
+  if (transmit(in, 1, out)) {
+    ;// todo return 1;
+  }
+
+  //envoie nouveau parametre
+  in[0] = WRITACTI;
+  in[1] = out[1] & (!ACTIBR2 | val);
+  if (transmit(in, nbTr, out)) {
+    ;// todo return 1;
+  }
 }
 
-BLYNK_WRITE(V26){
-	int val = param.asInt() << 6;
-	uint8_t in[2];
-	uint8_t nbTr = 2;
-	uint8_t out[8];
-
-	//lecture ancien param
-	in[0] = READACTI;
-	if (transmit(in, 1, out)) {
-		;// todo return 1;
-	}
-	
-	//envoie nouveau parametre
-	in[0] = WRITACTI;
-	in[1] = out[1] & (!ACTIOSM | val);
-	if (transmit(in, nbTr, out)) {
-		;// todo return 1;
-	}
+BLYNK_WRITE(V26) {
+  int val = param.asInt() << 6;
+  uint8_t in[2];
+  uint8_t nbTr = 2;
+  uint8_t out[8];
+
+  //lecture ancien param
+  in[0] = READACTI;
+  if (transmit(in, 1, out)) {
+    ;// todo return 1;
+  }
+
+  //envoie nouveau parametre
+  in[0] = WRITACTI;
+  in[1] = out[1] & (!ACTIOSM | val);
+  if (transmit(in, nbTr, out)) {
+    ;// todo return 1;
+  }
 }
 
 BLYNK_WRITE(V27) {
-	//Nourrisage
-
-	int val = param.asInt() << 7;
-	uint8_t in[2];
-	uint8_t nbTr = 2;
-	uint8_t out[8];
-
-	//lecture ancien param
-	in[0] = READACTI;
-	if (transmit(in, 1, out)) {
-		;// todo return 1;
-	}
-	
-	//envoie nouveau parametre
-	in[0] = WRITACTI;
-	in[1] = out[1] & (!ACTINOU | val);
-	if (transmit(in, nbTr, out)) {
-		;// todo return 1;
-	}
+  //Nourrisage
+
+  int val = param.asInt() << 7;
+  uint8_t in[2];
+  uint8_t nbTr = 2;
+  uint8_t out[8];
+
+  //lecture ancien param
+  in[0] = READACTI;
+  if (transmit(in, 1, out)) {
+    ;// todo return 1;
+  }
+
+  //envoie nouveau parametre
+  in[0] = WRITACTI;
+  in[1] = out[1] & (!ACTINOU | val);
+  if (transmit(in, nbTr, out)) {
+    ;// todo return 1;
+  }
 }
 
-BLYNK_WRITE(V40){
-	int val = param.asInt();
-	uint8_t in[2];
-	uint8_t nbTr = 2;
-	uint8_t out[8];
-	
-	
-	//lecture ancien param
-	in[0] = READVENT;
-	if (transmit(in, 1, out)) {
-		;// todo return 1;
-	}
-	
-	//envoie nouveau parametre
-	in[0] = WRITVENT;
-	in[1] = out[1] & (!0xF0 | val<<4);// todo a modif
-	if (transmit(in, nbTr, out)) {
-		;// todo return 1;
-	}
+BLYNK_WRITE(V40) {
+  int val = param.asInt();
+  uint8_t in[2];
+  uint8_t nbTr = 2;
+  uint8_t out[8];
+
+
+  //lecture ancien param
+  in[0] = READVENT;
+  if (transmit(in, 1, out)) {
+    ;// todo return 1;
+  }
+
+  //envoie nouveau parametre
+  in[0] = WRITVENT;
+  in[1] = out[1] & (!0xF0 | val << 4); // todo a modif
+  if (transmit(in, nbTr, out)) {
+    ;// todo return 1;
+  }
 }
 
-BLYNK_WRITE(V41){
-	int val = param.asInt();
-	uint8_t in[2];
-	uint8_t nbTr = 2;
-	uint8_t out[8];
-	
-	
-	//lecture ancien param
-	in[0] = READVENT;
-	if (transmit(in, 1, out)) {
-		;// todo return 1;
-	}
-	
-	//envoie nouveau parametre
-	in[0] = WRITVENT;
-	in[1] = out[1] & (!0x0F | val);// todo a modif
-	if (transmit(in, nbTr, out)) {
-		;// todo return 1;
-	}
+BLYNK_WRITE(V41) {
+  int val = param.asInt();
+  uint8_t in[2];
+  uint8_t nbTr = 2;
+  uint8_t out[8];
+
+
+  //lecture ancien param
+  in[0] = READVENT;
+  if (transmit(in, 1, out)) {
+    ;// todo return 1;
+  }
+
+  //envoie nouveau parametre
+  in[0] = WRITVENT;
+  in[1] = out[1] & (!0x0F | val);// todo a modif
+  if (transmit(in, nbTr, out)) {
+    ;// todo return 1;
+  }
 }
 
-BLYNK_WRITE(V50){
-	int val = param.asInt();
-	uint8_t in[2];
-	uint8_t nbTr = 2;
-	uint8_t out[8];
-	
-	in[0] = WRITVENT;
-	in[1] = val;
-	if (transmit(in, nbTr, out)) {
-		;// todo return 1;
-	}
-	
+BLYNK_WRITE(V50) {
+  int val = param.asInt();
+  uint8_t in[2];
+  uint8_t nbTr = 2;
+  uint8_t out[8];
+
+  in[0] = WRITVENT;
+  in[1] = val;
+  if (transmit(in, nbTr, out)) {
+    ;// todo return 1;
+  }
+
 }
 
 
@@ -403,21 +419,24 @@ uint8_t out[8];
 uint8_t in[8];
 
 void setup() {
-	Blynk.begin(auth, ssid, pass, IPAddress(192, 168, 1, 18), 8081);
-
-	//timerRTC.setInterval(1000L * 3600, SyncRTC); // une synchro de la RTC par heure
-	timerStatus.setInterval(2000L, Status); // un Status toute les 2 secs
+  //Blynk.begin(auth, ssid, pass, IPAddress(192, 168, 1, 18), 8081);
 
-	Serial.begin(115200);
-	pinMode(LED_BUILTIN, OUTPUT);     // Initialize the LED_BUILTIN pin as an output
+  //timerRTC.setInterval(1000L * 3600, SyncRTC); // une synchro de la RTC par heure
+  //timerStatus.setInterval(2000L, Status); // un Status toute les 2 secs
+  //timerSend.setInterval(500L,Send);
 
+  Serial.begin(115200);
+  pinMode(LED_BUILTIN, OUTPUT);     // Initialize the LED_BUILTIN pin as an output
+  digitalWrite(LED_BUILTIN, HIGH);
 
 }
 
 
 void loop() {
-	Blynk.run();
-	//timerRTC.run();
-	timerStatus.run();
+  //Blynk.run();
+  //timerRTC.run();
+  //timerSend.run();
+  Status();
+  delay(2000);
 
 }

+ 1 - 1
Soft/STM32/F0/Core/Inc/Comunication.h

@@ -5,7 +5,7 @@
 
 #define SizeMes 8
 
-#define STATUS		0xA0
+#define STATUS		0x00
 #define READACTI	0x10
 #define WRITACTI	0x20
 #define READVENT	0x30

+ 2 - 0
Soft/STM32/F0/Core/Inc/main.h

@@ -58,6 +58,8 @@ void Error_Handler(void);
 /* USER CODE END EFP */
 
 /* Private defines -----------------------------------------------------------*/
+#define PinDeb_Pin GPIO_PIN_6
+#define PinDeb_GPIO_Port GPIOA
 /* USER CODE BEGIN Private defines */
 
 /* USER CODE END Private defines */

+ 15 - 11
Soft/STM32/F0/Core/Src/Comunication.c

@@ -7,45 +7,49 @@ uint8_t parse(uint8_t* mes){
 	switch(mes[0] & MASKMES){
 	case (STATUS):
 		Status();
-		return 0;
+		break;
 	case (READACTI):
 		ReadAction();
-		return 0;
+	break;
 	case (WRITACTI):
 		WriteAction(mes);
-		return 0;
+	break;
 	case (READVENT):
 		ReadVent();
-		return 0;
+	break;
 	case (WRITVENT):
 		WriteVent(mes);
-		return 0;
+	break;
 	case (ERRORR):
 		Error(mes);
-		return 0;
+	break;
 	case (DELAYBRA):
 		DelayBra(mes);
-		return 0;
+	break;
 	case (SYNCRTC):
 		SyncRTC(mes);
-		return 0;
+	break;
 	default:
 		return -1;//erreur
+	return 0;
 	}
 }
 
+uint8_t i = 0 ;
+uint8_t RX_uart[SizeMes];
 
 uint8_t Status(){
+	HAL_GPIO_TogglePin(PinDeb_GPIO_Port,PinDeb_Pin);
 	uint8_t mes[8];
 	mes[0]=0x0A;
-	mes[1]=150;
+	mes[1]=155;
 	mes[2]=145;
-	mes[3]=0xAA;
+	mes[3]=0x77;
 	mes[4]=0xAA;
 	mes[5]=0xAA;
 	mes[6]=0xAA;
 	mes[7]=0x01;
-	HAL_UART_Transmit(&huart1,mes,8,1000);
+	HAL_UART_Transmit(&huart1,mes,8,500);
 }
 
 uint8_t ReadAction(){

+ 2 - 1
Soft/STM32/F0/Core/Src/freertos.c

@@ -73,7 +73,7 @@ static StaticTask_t xIdleTaskTCBBuffer;
 static StackType_t xIdleStack[configMINIMAL_STACK_SIZE];
 
 void vApplicationGetIdleTaskMemory(StaticTask_t **ppxIdleTaskTCBBuffer,
-		StackType_t **ppxIdleTaskStackBuffer, uint32_t *pulIdleTaskStackSize) {
+	StackType_t **ppxIdleTaskStackBuffer, uint32_t *pulIdleTaskStackSize) {
 	*ppxIdleTaskTCBBuffer = &xIdleTaskTCBBuffer;
 	*ppxIdleTaskStackBuffer = &xIdleStack[0];
 	*pulIdleTaskStackSize = configMINIMAL_STACK_SIZE;
@@ -141,6 +141,7 @@ void StartDefaultTask(void const * argument)
 
 /* Private application code --------------------------------------------------*/
 /* USER CODE BEGIN Application */
+uint32_t tes = 0;
 void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart) {
 	parse(RX_uart);
 	HAL_StatusTypeDef t = HAL_UART_Receive_DMA(&huart1,RX_uart,SizeMes);

+ 12 - 2
Soft/STM32/F0/Core/Src/gpio.c

@@ -48,6 +48,9 @@ void MX_GPIO_Init(void)
   __HAL_RCC_GPIOA_CLK_ENABLE();
   __HAL_RCC_GPIOB_CLK_ENABLE();
 
+  /*Configure GPIO pin Output Level */
+  HAL_GPIO_WritePin(PinDeb_GPIO_Port, PinDeb_Pin, GPIO_PIN_RESET);
+
   /*Configure GPIO pin Output Level */
   HAL_GPIO_WritePin(GPIOB, GPIO_PIN_11, GPIO_PIN_RESET);
 
@@ -58,13 +61,20 @@ void MX_GPIO_Init(void)
   HAL_GPIO_Init(GPIOF, &GPIO_InitStruct);
 
   /*Configure GPIO pins : PA2 PA3 PA4 PA5
-                           PA6 PA7 */
+                           PA7 */
   GPIO_InitStruct.Pin = GPIO_PIN_2|GPIO_PIN_3|GPIO_PIN_4|GPIO_PIN_5
-                          |GPIO_PIN_6|GPIO_PIN_7;
+                          |GPIO_PIN_7;
   GPIO_InitStruct.Mode = GPIO_MODE_IT_RISING;
   GPIO_InitStruct.Pull = GPIO_NOPULL;
   HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
 
+  /*Configure GPIO pin : PtPin */
+  GPIO_InitStruct.Pin = PinDeb_Pin;
+  GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+  GPIO_InitStruct.Pull = GPIO_NOPULL;
+  GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+  HAL_GPIO_Init(PinDeb_GPIO_Port, &GPIO_InitStruct);
+
   /*Configure GPIO pin : PB11 */
   GPIO_InitStruct.Pin = GPIO_PIN_11;
   GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;

+ 1 - 1
Soft/STM32/F0/Core/Src/usart.c

@@ -46,7 +46,7 @@ void MX_USART1_UART_Init(void)
   huart1.Init.Parity = UART_PARITY_NONE;
   huart1.Init.Mode = UART_MODE_TX_RX;
   huart1.Init.HwFlowCtl = UART_HWCONTROL_NONE;
-  huart1.Init.OverSampling = UART_OVERSAMPLING_16;
+  huart1.Init.OverSampling = UART_OVERSAMPLING_8;
   huart1.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE;
   huart1.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_NO_INIT;
   if (HAL_UART_Init(&huart1) != HAL_OK)

+ 5 - 4
Soft/STM32/F0/F0.ioc

@@ -81,8 +81,10 @@ PA4.Locked=true
 PA4.Signal=GPXTI4
 PA5.Locked=true
 PA5.Signal=GPXTI5
+PA6.GPIOParameters=GPIO_Label
+PA6.GPIO_Label=PinDeb
 PA6.Locked=true
-PA6.Signal=GPXTI6
+PA6.Signal=GPIO_Output
 PA7.Locked=true
 PA7.Signal=GPXTI7
 PA8.Signal=S_TIM1_CH1
@@ -153,8 +155,6 @@ SH.GPXTI4.0=GPIO_EXTI4
 SH.GPXTI4.ConfNb=1
 SH.GPXTI5.0=GPIO_EXTI5
 SH.GPXTI5.ConfNb=1
-SH.GPXTI6.0=GPIO_EXTI6
-SH.GPXTI6.ConfNb=1
 SH.GPXTI7.0=GPIO_EXTI7
 SH.GPXTI7.ConfNb=1
 SH.S_TIM1_CH1.0=TIM1_CH1,PWM Generation1 CH1
@@ -165,7 +165,8 @@ TIM1.Channel-PWM\ Generation1\ CH1=TIM_CHANNEL_1
 TIM1.Channel-PWM\ Generation2\ CH2=TIM_CHANNEL_2
 TIM1.IPParameters=Channel-PWM Generation1 CH1,Channel-PWM Generation2 CH2
 USART1.BaudRate=115200
-USART1.IPParameters=VirtualMode-Asynchronous,BaudRate
+USART1.IPParameters=VirtualMode-Asynchronous,BaudRate,OverSampling
+USART1.OverSampling=UART_OVERSAMPLING_8
 USART1.VirtualMode-Asynchronous=VM_ASYNC
 VP_FREERTOS_VS_CMSIS_V1.Mode=CMSIS_V1
 VP_FREERTOS_VS_CMSIS_V1.Signal=FREERTOS_VS_CMSIS_V1