CLUZE Remy -EXT 6 лет назад
Родитель
Сommit
3fe8ac2120

+ 10 - 168
Soft/ESP12F/Test/ESP12f.ino

@@ -16,186 +16,28 @@ char auth[] = "qDSPfbEHHMiQxMNFeKZ2_lKwbxD81Yu8";
 char ssid[] = "Livebox-7C2C";
 char pass[] = "566C61F61F9C925C9F3D7D79E6";
 
-BlynkTimer timer;
-WidgetLED  led1(V11) // Led Tech bas
-         , led2(V12) // Led Tech Haut
-         , led3(V13) // Led Cuve Haut
-         , led4(V14) // Led Reserve Bas
-         , led5(V15) // Led Autre1
-         , led6(V16); // Led Autre2
+
 
 /* Fonction */
 void setup(){
   // Debug console
   Serial.begin(9600);
-  Blynk.begin(auth, ssid, pass);
-  timer.setInterval(30000L, statusOrdi); //Configuration du timer pour que toute les seconde ils appelles la fonction de status.
+  
+  pinMode(9, OUTPUT);
+  digitalWrite(9, 1);
+  SPI.begin()
+  SPI.beginTransaction(SPISettings(14000000, MSBFIRST, SPI_MODE0));
 }
 
 void loop(){
 	Blynk.run();
-	timer.run();
-}
-
-void statusOrdi(){
-	uint8_t tab[7];
-	SPI_Status(tab); //Lecture du status de l'ordinateur
-	
-	//Transmission temp air
-	Blynk.virtualWrite(8, tab[1]);
-	//Envoi notification si necessaire
-		if (tab[1]<18)
-		Blynk.notify("Temérature air trop froid");
-	else (tab[1]>29)
-		Blynk.notify("Temérature air trop Chaud");
-	
-	//Transmission temp eau
-	Blynk.virtualWrite(9, tab[2]);
-	//Envoi notification si necessaire
-	if (tab[1]<23)
-		Blynk.notify("Temérature Eau trop froid");
-	else (tab[1]>29)
-		Blynk.notify("Temérature Eau trop Chaud");
-	
-	//Transmission PH
-	Blynk.virtualWrite(10, tab[3]);
-	//Envoi notification si necessaire
-	if (tab[1]<7.5)
-		Blynk.notify("PH trop bas");
-	else (tab[1]>8.5)
-		Blynk.notify("PH trop Haut");
-		
-	//Affichage led
-	if((tab[4] & MASK_TB) = MASK_TB)
-		led1.on();
-	else
-		led1.off();
-
-	if((tab[4] & MASK_TH) = MASK_TH)
-		led2.on();
-		Blynk.notify("Cuve technique haut");//Envoi notification si necessaire
-	else
-		led2.off();
-
-	if((tab[4] & MASK_CH) = MASK_CH)
-		led3.on();
-	else
-		led3.off();
-
-	if((tab[4] & MASK_RB) = MASK_RB)
-		led4.on();
-		Blynk.notify("Reserve bas");//Envoi notification si necessaire
-	else
-		led4.off();
-
-	if((tab[4] & MASK_A1) = MASK_A1)
-		led5.on();
-	else
-		led5.off();
-
-	if((tab[4] & MASK_A2) = MASK_A2)
-		led6.on();
-	else
-		led6.off();
-	
-	// a faire
-	//affichage des osmolation passé.
-}
-
-BLYNK_WRITE(V20){ //Bouton Ecumeur
-	uint8_t data;
-	Read_actionneur(data);
-	if (param.asInt())
-		data = data | MASK_ECU;
-	else 
-		data = data & (!MASK_ECU);
-	Write_actionneur(data);
-}
-
-BLYNK_WRITE(V21){ //Bouton Remonter
-		uint8_t data;
-	Read_actionneur(data);
-	if (param.asInt())
-		data = data | MASK_ECU;
-	else
-		data = data & (!MASK_ECU);
-	Write_actionneur(data);
-}
-
-BLYNK_WRITE(V22){ //Bouton Chauffage
-		uint8_t data;
-	Read_actionneur(data);
-	if (param.asInt())
-		data = data | MASK_ECU;
-	else
-		data = data & (!MASK_ECU);
-	Write_actionneur(data);
-}
-
-BLYNK_WRITE(V23){ //Bouton Brassage1
-		uint8_t data;
-	Read_actionneur(data);
-	if (param.asInt())
-		data = data | MASK_ECU;
-	else
-		data = data & (!MASK_ECU);
-	Write_actionneur(data);
-}
-
-BLYNK_WRITE(V24){ //Bouton Brassage2
-		uint8_t data;
-	Read_actionneur(data);
-	if (param.asInt())
-		data = data | MASK_ECU;
-	else
-		data = data & (!MASK_ECU);
-	Write_actionneur(data);
-}
-
-BLYNK_WRITE(V25){ //Bouton Osmolateur
-
-}
-
-BLYNK_WRITE(V26){ //Bouton Remplisage Osmolateur N2
-
-}
-
-BLYNK_WRITE(V27){ //Bouton Suplémentaire 12V 1
-
-}
-
-BLYNK_WRITE(V28){ //Bouton Suplémentaire 12V 2	
-
-}
-
-BLYNK_WRITE(V29){ //Bouton Lit fluidiser	
-
-}
-
-BLYNK_WRITE(V30){ //Bouton RAH	
-
-}
-
-BLYNK_WRITE(V31){ //Bouton Suplémentaire 230V	
-
-}
-
-BLYNK_WRITE(V32){ //Ventilateur 1
 	
-}
-
-BLYNK_WRITE(V33){ //Ventilateur 3
+	digitalWrite(9, 0);
+	SPI.transfer(0xAA)
+	SPI.transfer(0x00)
+	digitalWrite(9, 1);
 	
 }
 
-BLYNK_WRITE(V34){ //Ventilateur 3
-	
-}
-
-BLYNK_WRITE(V35){ //Bouton OSMOLATEUR2 Activé
-	
-}
-
-
 
 

+ 0 - 18
Soft/STM32/Controle/.cproject

@@ -111,23 +111,6 @@
 							</tool>
 						</toolChain>
 					</folderInfo>
-					<folderInfo id="fr.ac6.managedbuild.config.gnu.cross.exe.debug.745205628.1399947477" name="/" resourcePath="DriverSTM_RC">
-						<toolChain id="fr.ac6.managedbuild.toolchain.gnu.cross.exe.debug.1496179811" name="Ac6 STM32 MCU GCC" superClass="fr.ac6.managedbuild.toolchain.gnu.cross.exe.debug" unusedChildren="">
-							<option id="fr.ac6.managedbuild.option.gnu.cross.prefix.1134037625.428485970" name="Prefix" superClass="fr.ac6.managedbuild.option.gnu.cross.prefix.1134037625"/>
-							<option id="fr.ac6.managedbuild.option.gnu.cross.mcu.1786405401.34642346" name="Mcu" superClass="fr.ac6.managedbuild.option.gnu.cross.mcu.1786405401"/>
-							<option id="fr.ac6.managedbuild.option.gnu.cross.board.375536696.103818402" name="Board" superClass="fr.ac6.managedbuild.option.gnu.cross.board.375536696"/>
-							<option id="fr.ac6.managedbuild.option.gnu.cross.core.1083960614.731229653" name="Core" superClass="fr.ac6.managedbuild.option.gnu.cross.core.1083960614"/>
-							<option id="fr.ac6.managedbuild.option.gnu.cross.instructionSet.1278913957.1044500437" name="Instruction Set" superClass="fr.ac6.managedbuild.option.gnu.cross.instructionSet.1278913957"/>
-							<option id="fr.ac6.managedbuild.option.gnu.cross.fpu.724348567.2054363099" name="Floating point hardware" superClass="fr.ac6.managedbuild.option.gnu.cross.fpu.724348567"/>
-							<option id="fr.ac6.managedbuild.option.gnu.cross.floatabi.406296507.1822888098" name="Floating-point ABI" superClass="fr.ac6.managedbuild.option.gnu.cross.floatabi.406296507"/>
-							<tool id="fr.ac6.managedbuild.tool.gnu.cross.c.compiler.1793058515" name="MCU GCC Compiler" superClass="fr.ac6.managedbuild.tool.gnu.cross.c.compiler.586945225"/>
-							<tool id="fr.ac6.managedbuild.tool.gnu.cross.cpp.compiler.1242673931" name="MCU G++ Compiler" superClass="fr.ac6.managedbuild.tool.gnu.cross.cpp.compiler.2045706743"/>
-							<tool id="fr.ac6.managedbuild.tool.gnu.cross.c.linker.567273668" name="MCU GCC Linker" superClass="fr.ac6.managedbuild.tool.gnu.cross.c.linker.2018387372"/>
-							<tool id="fr.ac6.managedbuild.tool.gnu.cross.cpp.linker.2123757755" name="MCU G++ Linker" superClass="fr.ac6.managedbuild.tool.gnu.cross.cpp.linker.75010142"/>
-							<tool id="fr.ac6.managedbuild.tool.gnu.archiver.1186143238" name="MCU GCC Archiver" superClass="fr.ac6.managedbuild.tool.gnu.archiver.1110335707"/>
-							<tool id="fr.ac6.managedbuild.tool.gnu.cross.assembler.2079881933" name="MCU GCC Assembler" superClass="fr.ac6.managedbuild.tool.gnu.cross.assembler.1644446420"/>
-						</toolChain>
-					</folderInfo>
 					<folderInfo id="fr.ac6.managedbuild.config.gnu.cross.exe.debug.745205628.1483617142" name="/" resourcePath="Inc">
 						<toolChain id="fr.ac6.managedbuild.toolchain.gnu.cross.exe.debug.1013828548" name="Ac6 STM32 MCU GCC" superClass="fr.ac6.managedbuild.toolchain.gnu.cross.exe.debug" unusedChildren="">
 							<option id="fr.ac6.managedbuild.option.gnu.cross.prefix.1134037625.454030241" name="Prefix" superClass="fr.ac6.managedbuild.option.gnu.cross.prefix.1134037625"/>
@@ -154,7 +137,6 @@
 						</toolChain>
 					</folderInfo>
 					<sourceEntries>
-						<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="DriverSTM_RC"/>
 						<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="Drivers"/>
 						<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="Inc"/>
 						<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="Middlewares"/>

+ 0 - 7
Soft/STM32/Controle/.project

@@ -24,11 +24,4 @@
 		<nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature>
 		<nature>fr.ac6.mcu.ide.core.MCUProjectNature</nature>
 	</natures>
-	<linkedResources>
-		<link>
-			<name>DriverSTM_RC</name>
-			<type>2</type>
-			<locationURI>PARENT-3-PROJECT_LOC/DriverSTM_RC</locationURI>
-		</link>
-	</linkedResources>
 </projectDescription>

+ 42 - 0
Soft/STM32/Controle/Inc/PWM.h

@@ -0,0 +1,42 @@
+/*
+ * PWM.h
+ *
+ *  Created on: 14 janv. 2019
+ *      Author: e_rcluze
+ */
+
+#ifndef PWM_H_
+#define PWM_H_
+
+#include "RTC.h"
+#include "tim.h"
+#include "Heure.h"
+#include "Tab.h"
+
+#define S0 0X00
+#define S1 0X01
+#define S2 0X02
+#define S3 0X03
+#define S4 0X04
+#define S5 0X05
+#define S6 0X06
+#define S7 0X07
+#define S8 0X08
+#define S9 0X09
+
+
+#define PWM_MAX 31250-1
+
+void PWMSetDutyCycle(uint8_t sortie, uint8_t pourcentage);
+
+void PWMStart(uint8_t sortie);
+
+uint16_t PourcentageToValue(uint8_t val);
+
+uint16_t PWMValue();
+
+uint8_t PWMPourcentage(Heure *heure, Sortie *sortie);
+
+uint8_t PWMPourcentageReprise(Heure *Hrepr, Heure *heure, Sortie *sortie);
+
+#endif /* PWM_H_ */

+ 34 - 0
Soft/STM32/Controle/Inc/Tab.h

@@ -0,0 +1,34 @@
+/*
+ * Tab.h
+ *
+ *  Created on: 14 janv. 2019
+ *      Author: e_rcluze
+ */
+
+#ifndef TAB_H_
+#define TAB_H_
+
+#include <stdint.h>
+#include "Heure.h"
+
+#define NB_LIGNE 10
+
+typedef struct {
+
+	Heure Demmarage; //Heure de Démarage (en Minute)
+	Heure Extinxtion; //Heure de Déxtintion (en Minute)
+	uint8_t PuissanceMax; //Puissance Maximum (En pourcentage)
+	uint8_t Pente; //Pente (en Minute)
+
+}Sortie;
+
+Heure HeureDem[10];
+Heure HeureExt[10];
+
+Sortie tabSortie[10];
+
+void initHeure();
+
+void initSortie();
+
+#endif /* TAB_H_ */

+ 113 - 0
Soft/STM32/Controle/Src/PWM.c

@@ -0,0 +1,113 @@
+/*
+ * PWM.c
+ *
+ *  Created on: 14 janv. 2019
+ *      Author: e_rcluze
+ */
+
+#include "PWM.h"
+#include "tim.h"
+#include "gpio.h"
+
+void PWMSetDutyCycle(uint8_t sortie, uint8_t pourcentage) {
+	TIM_OC_InitTypeDef sConfigOC;
+
+	sConfigOC.OCMode = TIM_OCMODE_PWM1;
+	sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH;
+	sConfigOC.OCFastMode = TIM_OCFAST_DISABLE;
+
+	sConfigOC.Pulse = PourcentageToValue(pourcentage);
+	HAL_Delay(1);
+	switch (sortie) {
+	case S0:
+		HAL_TIM_PWM_ConfigChannel(&htim2, &sConfigOC, TIM_CHANNEL_3);
+		break;
+	case S1:
+		HAL_TIM_PWM_ConfigChannel(&htim2, &sConfigOC, TIM_CHANNEL_4);
+		break;
+	case S2:
+		HAL_TIM_PWM_ConfigChannel(&htim3, &sConfigOC, TIM_CHANNEL_1);
+		break;
+	case S3:
+		HAL_TIM_PWM_ConfigChannel(&htim3, &sConfigOC, TIM_CHANNEL_2);
+		break;
+	case S4:
+		HAL_TIM_PWM_ConfigChannel(&htim3, &sConfigOC, TIM_CHANNEL_3);
+		break;
+	case S5:
+		HAL_TIM_PWM_ConfigChannel(&htim3, &sConfigOC, TIM_CHANNEL_4);
+		break;
+	case S6:
+		HAL_TIM_PWM_ConfigChannel(&htim4, &sConfigOC, TIM_CHANNEL_1);
+		break;
+	case S7:
+		HAL_TIM_PWM_ConfigChannel(&htim4, &sConfigOC, TIM_CHANNEL_2);
+		break;
+	case S8:
+		HAL_TIM_PWM_ConfigChannel(&htim4, &sConfigOC, TIM_CHANNEL_3);
+		break;
+	case S9:
+		HAL_TIM_PWM_ConfigChannel(&htim4, &sConfigOC, TIM_CHANNEL_4);
+		break;
+	}
+}
+
+void PWMStart(uint8_t sortie) {
+	switch (sortie) {
+	case S0:
+		HAL_TIM_PWM_Start(&htim2, TIM_CHANNEL_3);
+		break;
+	case S1:
+		HAL_TIM_PWM_Start(&htim2, TIM_CHANNEL_4);
+		break;
+	case S2:
+		HAL_TIM_PWM_Start(&htim3, TIM_CHANNEL_1);
+		break;
+	case S3:
+		HAL_TIM_PWM_Start(&htim3, TIM_CHANNEL_2);
+		break;
+	case S4:
+		HAL_TIM_PWM_Start(&htim3, TIM_CHANNEL_3);
+		break;
+	case S5:
+		HAL_TIM_PWM_Start(&htim3, TIM_CHANNEL_4);
+		break;
+	case S6:
+		HAL_TIM_PWM_Start(&htim4, TIM_CHANNEL_1);
+		break;
+	case S7:
+		HAL_TIM_PWM_Start(&htim4, TIM_CHANNEL_2);
+		break;
+	case S8:
+		HAL_TIM_PWM_Start(&htim4, TIM_CHANNEL_3);
+		break;
+	case S9:
+		HAL_TIM_PWM_Start(&htim4, TIM_CHANNEL_4);
+		break;
+	}
+}
+
+uint16_t PourcentageToValue(uint8_t val){
+	HAL_Delay(1);
+	return (uint16_t)val * PWM_MAX;
+}
+
+uint8_t PWMPourcentage(Heure *heure, Sortie *sortie){
+	Heure hd,he;
+
+	HeureAjout(hd,sortie->Demmarage,sortie->Pente);
+	HeureSuppr(he,sortie->Extinxtion,sortie->Pente);
+
+	if ((CompareHeure(*heure,sortie->Demmarage)>=0) & (CompareHeure(*heure,hd)<0)){
+		return (DiffHeure(*heure,sortie->Demmarage)/sortie->Pente)*sortie->PuissanceMax;
+	}
+	else if ((CompareHeure(*heure,hd)>=0) &(CompareHeure(*heure,he)<=0)){
+		return sortie->PuissanceMax;
+	}
+	else if ((CompareHeure(*heure,hd)>0) & (CompareHeure(*heure,sortie->Extinxtion)<=0)){
+		return (DiffHeure(sortie->Extinxtion,*heure)/sortie->Pente)*sortie->PuissanceMax;
+	}
+	else{
+		return 0;
+	}
+}

+ 74 - 0
Soft/STM32/Controle/Src/Tab.c

@@ -0,0 +1,74 @@
+/*
+ * Tab.c
+ *
+ *  Created on: 15 janv. 2019
+ *      Author: e_rcluze
+ */
+
+#include "Tab.h"
+#include "RTC.h"
+
+
+
+
+void initHeure(){
+	HeureDem[0].heure = 9;	HeureDem[0].minute = 0;
+	HeureDem[1].heure = 9; 	HeureDem[1].minute = 0;
+	HeureDem[2].heure = 9; 	HeureDem[2].minute = 0;
+	HeureDem[3].heure = 9; 	HeureDem[3].minute = 0;
+	HeureDem[4].heure = 9; 	HeureDem[4].minute = 0;
+	HeureDem[5].heure = 9; 	HeureDem[5].minute = 0;
+	HeureDem[6].heure = 9; 	HeureDem[6].minute = 0;
+	HeureDem[7].heure = 9; 	HeureDem[7].minute = 0;
+	HeureDem[8].heure = 9; 	HeureDem[8].minute = 0;
+	HeureDem[9].heure = 9; 	HeureDem[9].minute = 0;
+
+
+	HeureExt[0].heure = 22;		HeureExt[0].minute = 0;
+	HeureExt[1].heure = 22; 	HeureExt[1].minute = 0;
+	HeureExt[2].heure = 22; 	HeureExt[2].minute = 0;
+	HeureExt[3].heure = 22; 	HeureExt[3].minute = 0;
+	HeureExt[4].heure = 22; 	HeureExt[4].minute = 0;
+	HeureExt[5].heure = 22; 	HeureExt[5].minute = 0;
+	HeureExt[6].heure = 22; 	HeureExt[6].minute = 0;
+	HeureExt[7].heure = 22; 	HeureExt[7].minute = 0;
+	HeureExt[8].heure = 22; 	HeureExt[8].minute = 0;
+	HeureExt[9].heure = 22;		HeureExt[9].minute = 0;
+
+}
+void initSortie(){
+	for (int i =0 ; i<10;i++){
+		tabSortie[i].Demmarage=HeureDem[i];
+		tabSortie[i].Extinxtion=HeureExt[i];
+	}
+	//S1
+	tabSortie[0].Pente=60;
+	tabSortie[0].PuissanceMax=60;
+
+	tabSortie[1].Pente=60;
+	tabSortie[1].PuissanceMax=60;
+
+	tabSortie[2].Pente=60;
+	tabSortie[2].PuissanceMax=100;
+
+	tabSortie[3].Pente=60;
+	tabSortie[3].PuissanceMax=20;
+
+	tabSortie[4].Pente=60;
+	tabSortie[4].PuissanceMax=10;
+
+	tabSortie[5].Pente=60;
+	tabSortie[5].PuissanceMax=40;
+
+	tabSortie[6].Pente=60;
+	tabSortie[6].PuissanceMax=0;
+
+	tabSortie[7].Pente=60;
+	tabSortie[7].PuissanceMax=0;
+
+	tabSortie[8].Pente=60;
+	tabSortie[8].PuissanceMax=0;
+
+	tabSortie[9].Pente=60;
+	tabSortie[9].PuissanceMax=0;
+}

+ 178 - 146
Soft/STM32/Test/.cproject

@@ -1,247 +1,279 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<?xml version="1.0" encoding="UTF-8"?>
 <?fileVersion 4.0.0?><cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage">
 	<storageModule moduleId="org.eclipse.cdt.core.settings">
 		<cconfiguration id="fr.ac6.managedbuild.config.gnu.cross.exe.debug.228332542">
 			<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="fr.ac6.managedbuild.config.gnu.cross.exe.debug.228332542" moduleId="org.eclipse.cdt.core.settings" name="Debug">
-				<externalSettings/>
+				<externalSettings />
 				<extensions>
-					<extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
-					<extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
-					<extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
-					<extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
-					<extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
-					<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+					<extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser" />
+					<extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser" />
+					<extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser" />
+					<extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser" />
+					<extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser" />
+					<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser" />
 				</extensions>
 			</storageModule>
 			<storageModule moduleId="cdtBuildSystem" version="4.0.0">
 				<configuration artifactExtension="elf" artifactName="${ProjName}" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.exe" buildProperties="org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.exe,org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.debug" cleanCommand="rm -rf" description="" id="fr.ac6.managedbuild.config.gnu.cross.exe.debug.228332542" name="Debug" parent="fr.ac6.managedbuild.config.gnu.cross.exe.debug" postannouncebuildStep="Generating hex and Printing size information:" postbuildStep="arm-none-eabi-objcopy -O ihex &quot;${BuildArtifactFileBaseName}.elf&quot; &quot;${BuildArtifactFileBaseName}.hex&quot; &amp;&amp; arm-none-eabi-size &quot;${BuildArtifactFileName}&quot;">
 					<folderInfo id="fr.ac6.managedbuild.config.gnu.cross.exe.debug.228332542." name="/" resourcePath="">
 						<toolChain id="fr.ac6.managedbuild.toolchain.gnu.cross.exe.debug.1845016873" name="Ac6 STM32 MCU GCC" superClass="fr.ac6.managedbuild.toolchain.gnu.cross.exe.debug">
-							<option id="fr.ac6.managedbuild.option.gnu.cross.prefix.1502652625" name="Prefix" superClass="fr.ac6.managedbuild.option.gnu.cross.prefix" value="arm-none-eabi-" valueType="string"/>
-							<option id="fr.ac6.managedbuild.option.gnu.cross.mcu.2089211066" name="Mcu" superClass="fr.ac6.managedbuild.option.gnu.cross.mcu" value="STM32F401RCTx" valueType="string"/>
-							<option id="fr.ac6.managedbuild.option.gnu.cross.board.1817078332" name="Board" superClass="fr.ac6.managedbuild.option.gnu.cross.board" value="Test" valueType="string"/>
-							<option id="fr.ac6.managedbuild.option.gnu.cross.core.1083960614" name="Core" superClass="fr.ac6.managedbuild.option.gnu.cross.core" valueType="stringList">
-								<listOptionValue builtIn="false" value="ARM Cortex-M4"/>
-								<listOptionValue builtIn="false" value="CM4"/>
+							<option id="fr.ac6.managedbuild.option.gnu.cross.prefix.1502652625" name="Prefix" superClass="fr.ac6.managedbuild.option.gnu.cross.prefix" useByScannerDiscovery="false" value="arm-none-eabi-" valueType="string" />
+							<option id="fr.ac6.managedbuild.option.gnu.cross.mcu.2089211066" name="Mcu" superClass="fr.ac6.managedbuild.option.gnu.cross.mcu" useByScannerDiscovery="false" value="STM32F401RCTx" valueType="string" />
+							<option id="fr.ac6.managedbuild.option.gnu.cross.board.1817078332" name="Board" superClass="fr.ac6.managedbuild.option.gnu.cross.board" useByScannerDiscovery="false" value="Test" valueType="string" />
+							<option id="fr.ac6.managedbuild.option.gnu.cross.core.1083960614" name="Core" superClass="fr.ac6.managedbuild.option.gnu.cross.core" useByScannerDiscovery="false" valueType="stringList">
+								<listOptionValue builtIn="false" value="ARM Cortex-M4" />
+								<listOptionValue builtIn="false" value="CM4" />
 							</option>
-							<option id="fr.ac6.managedbuild.option.gnu.cross.instructionSet.862017745" name="Instruction Set" superClass="fr.ac6.managedbuild.option.gnu.cross.instructionSet" value="fr.ac6.managedbuild.option.gnu.cross.instructionSet.thumbII" valueType="enumerated"/>
-							<option id="fr.ac6.managedbuild.option.gnu.cross.fpu.1881903435" name="Floating point hardware" superClass="fr.ac6.managedbuild.option.gnu.cross.fpu" value="fr.ac6.managedbuild.option.gnu.cross.fpu.fpv4-sp-d16" valueType="enumerated"/>
-							<option id="fr.ac6.managedbuild.option.gnu.cross.floatabi.133812733" name="Floating-point ABI" superClass="fr.ac6.managedbuild.option.gnu.cross.floatabi" value="fr.ac6.managedbuild.option.gnu.cross.floatabi.hard" valueType="enumerated"/>
-							<targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.ELF" id="fr.ac6.managedbuild.targetPlatform.gnu.cross.1318673203" isAbstract="false" osList="all" superClass="fr.ac6.managedbuild.targetPlatform.gnu.cross"/>
+							<option id="fr.ac6.managedbuild.option.gnu.cross.instructionSet.862017745" name="Instruction Set" superClass="fr.ac6.managedbuild.option.gnu.cross.instructionSet" useByScannerDiscovery="false" value="fr.ac6.managedbuild.option.gnu.cross.instructionSet.thumbII" valueType="enumerated" />
+							<option id="fr.ac6.managedbuild.option.gnu.cross.fpu.1881903435" name="Floating point hardware" superClass="fr.ac6.managedbuild.option.gnu.cross.fpu" useByScannerDiscovery="false" value="fr.ac6.managedbuild.option.gnu.cross.fpu.fpv4-sp-d16" valueType="enumerated" />
+							<option id="fr.ac6.managedbuild.option.gnu.cross.floatabi.133812733" name="Floating-point ABI" superClass="fr.ac6.managedbuild.option.gnu.cross.floatabi" useByScannerDiscovery="false" value="fr.ac6.managedbuild.option.gnu.cross.floatabi.hard" valueType="enumerated" />
+							<targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.ELF" id="fr.ac6.managedbuild.targetPlatform.gnu.cross.1318673203" isAbstract="false" osList="all" superClass="fr.ac6.managedbuild.targetPlatform.gnu.cross" />
 							<builder buildPath="${workspace_loc:/Test}/Debug" id="fr.ac6.managedbuild.builder.gnu.cross.958728294" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Gnu Make Builder" superClass="fr.ac6.managedbuild.builder.gnu.cross">
 								<outputEntries>
-									<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="outputPath" name="Debug"/>
+									<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="outputPath" name="Debug" />
 								</outputEntries>
 							</builder>
 							<tool id="fr.ac6.managedbuild.tool.gnu.cross.c.compiler.1256041133" name="MCU GCC Compiler" superClass="fr.ac6.managedbuild.tool.gnu.cross.c.compiler">
-								<option defaultValue="gnu.c.optimization.level.none" id="fr.ac6.managedbuild.gnu.c.compiler.option.optimization.level.1254507645" name="Optimization Level" superClass="fr.ac6.managedbuild.gnu.c.compiler.option.optimization.level" useByScannerDiscovery="false" value="fr.ac6.managedbuild.gnu.c.optimization.level.debug" valueType="enumerated"/>
-								<option id="gnu.c.compiler.option.debugging.level.1739100078" name="Debug Level" superClass="gnu.c.compiler.option.debugging.level" useByScannerDiscovery="false" value="gnu.c.debugging.level.max" valueType="enumerated"/>
+								<option defaultValue="gnu.c.optimization.level.none" id="fr.ac6.managedbuild.gnu.c.compiler.option.optimization.level.1254507645" name="Optimization Level" superClass="fr.ac6.managedbuild.gnu.c.compiler.option.optimization.level" useByScannerDiscovery="false" value="fr.ac6.managedbuild.gnu.c.optimization.level.debug" valueType="enumerated" />
+								<option id="gnu.c.compiler.option.debugging.level.1739100078" name="Debug Level" superClass="gnu.c.compiler.option.debugging.level" useByScannerDiscovery="false" value="gnu.c.debugging.level.max" valueType="enumerated" />
 								<option id="gnu.c.compiler.option.include.paths.851746921" name="Include paths (-I)" superClass="gnu.c.compiler.option.include.paths" useByScannerDiscovery="false" valueType="includePath">
-									<listOptionValue builtIn="false" value="../Inc"/>
-									<listOptionValue builtIn="false" value="&quot;C:\Users\e_rcluze\Documents\Autres\projet\DriverSTM_RC\Include&quot;"/>
-									<listOptionValue builtIn="false" value="../Drivers/STM32F4xx_HAL_Driver/Inc"/>
-									<listOptionValue builtIn="false" value="../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy"/>
-									<listOptionValue builtIn="false" value="../Drivers/CMSIS/Device/ST/STM32F4xx/Include"/>
-									<listOptionValue builtIn="false" value="../Drivers/CMSIS/Include"/>
+									<listOptionValue builtIn="false" value="../Inc" />
+									<listOptionValue builtIn="false" value="&quot;C:\Users\e_rcluze\Documents\Autres\projet\DriverSTM_RC\Include&quot;" />
+									<listOptionValue builtIn="false" value="../Drivers/STM32F4xx_HAL_Driver/Inc" />
+									<listOptionValue builtIn="false" value="../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy" />
+									<listOptionValue builtIn="false" value="../Drivers/CMSIS/Device/ST/STM32F4xx/Include" />
+									<listOptionValue builtIn="false" value="../Drivers/CMSIS/Include" />
 								</option>
 								<option id="gnu.c.compiler.option.preprocessor.def.symbols.2144099980" name="Defined symbols (-D)" superClass="gnu.c.compiler.option.preprocessor.def.symbols" useByScannerDiscovery="false" valueType="definedSymbols">
-									<listOptionValue builtIn="false" value="__weak=__attribute__((weak))"/>
-									<listOptionValue builtIn="false" value="__packed=__attribute__((__packed__))"/>
-									<listOptionValue builtIn="false" value="USE_HAL_DRIVER"/>
-									<listOptionValue builtIn="false" value="STM32F401xC"/>
+									<listOptionValue builtIn="false" value="__weak=__attribute__((weak))" />
+									<listOptionValue builtIn="false" value="__packed=__attribute__((__packed__))" />
+									<listOptionValue builtIn="false" value="USE_HAL_DRIVER" />
+									<listOptionValue builtIn="false" value="STM32F401xC" />
 								</option>
-								<option id="fr.ac6.managedbuild.gnu.c.compiler.option.misc.other.1532040872" superClass="fr.ac6.managedbuild.gnu.c.compiler.option.misc.other" useByScannerDiscovery="false" value="-fmessage-length=0" valueType="string"/>
-								<inputType id="fr.ac6.managedbuild.tool.gnu.cross.c.compiler.input.c.1736366554" superClass="fr.ac6.managedbuild.tool.gnu.cross.c.compiler.input.c"/>
-								<inputType id="fr.ac6.managedbuild.tool.gnu.cross.c.compiler.input.s.899990832" superClass="fr.ac6.managedbuild.tool.gnu.cross.c.compiler.input.s"/>
+								<option id="fr.ac6.managedbuild.gnu.c.compiler.option.misc.other.1532040872" superClass="fr.ac6.managedbuild.gnu.c.compiler.option.misc.other" useByScannerDiscovery="false" value="-fmessage-length=0" valueType="string" />
+								<inputType id="fr.ac6.managedbuild.tool.gnu.cross.c.compiler.input.c.1736366554" superClass="fr.ac6.managedbuild.tool.gnu.cross.c.compiler.input.c" />
+								<inputType id="fr.ac6.managedbuild.tool.gnu.cross.c.compiler.input.s.899990832" superClass="fr.ac6.managedbuild.tool.gnu.cross.c.compiler.input.s" />
 							</tool>
 							<tool id="fr.ac6.managedbuild.tool.gnu.cross.cpp.compiler.627449189" name="MCU G++ Compiler" superClass="fr.ac6.managedbuild.tool.gnu.cross.cpp.compiler">
-								<option defaultValue="gnu.cpp.optimization.level.none" id="fr.ac6.managedbuild.gnu.cpp.compiler.option.optimization.level.2042439252" name="Optimization Level" superClass="fr.ac6.managedbuild.gnu.cpp.compiler.option.optimization.level" useByScannerDiscovery="false" value="fr.ac6.managedbuild.gnu.cpp.optimization.level.debug" valueType="enumerated"/>
-								<option id="gnu.cpp.compiler.option.debugging.level.1523938362" name="Debug Level" superClass="gnu.cpp.compiler.option.debugging.level" useByScannerDiscovery="false" value="gnu.cpp.compiler.debugging.level.max" valueType="enumerated"/>
+								<option defaultValue="gnu.cpp.optimization.level.none" id="fr.ac6.managedbuild.gnu.cpp.compiler.option.optimization.level.2042439252" name="Optimization Level" superClass="fr.ac6.managedbuild.gnu.cpp.compiler.option.optimization.level" useByScannerDiscovery="false" value="fr.ac6.managedbuild.gnu.cpp.optimization.level.debug" valueType="enumerated" />
+								<option id="gnu.cpp.compiler.option.debugging.level.1523938362" name="Debug Level" superClass="gnu.cpp.compiler.option.debugging.level" useByScannerDiscovery="false" value="gnu.cpp.compiler.debugging.level.max" valueType="enumerated" />
 								<option id="gnu.cpp.compiler.option.include.paths.2062943068" name="Include paths (-I)" superClass="gnu.cpp.compiler.option.include.paths" useByScannerDiscovery="false" valueType="includePath">
-									<listOptionValue builtIn="false" value="../Inc"/>
-									<listOptionValue builtIn="false" value="../Drivers/STM32F4xx_HAL_Driver/Inc"/>
-									<listOptionValue builtIn="false" value="../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy"/>
-									<listOptionValue builtIn="false" value="../Drivers/CMSIS/Device/ST/STM32F4xx/Include"/>
-									<listOptionValue builtIn="false" value="../Drivers/CMSIS/Include"/>
+									<listOptionValue builtIn="false" value="../Inc" />
+									<listOptionValue builtIn="false" value="../Drivers/STM32F4xx_HAL_Driver/Inc" />
+									<listOptionValue builtIn="false" value="../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy" />
+									<listOptionValue builtIn="false" value="../Drivers/CMSIS/Device/ST/STM32F4xx/Include" />
+									<listOptionValue builtIn="false" value="../Drivers/CMSIS/Include" />
 								</option>
 								<option id="gnu.cpp.compiler.option.preprocessor.def.1477406546" name="Defined symbols (-D)" superClass="gnu.cpp.compiler.option.preprocessor.def" useByScannerDiscovery="false" valueType="definedSymbols">
-									<listOptionValue builtIn="false" value="__weak=__attribute__((weak))"/>
-									<listOptionValue builtIn="false" value="__packed=__attribute__((__packed__))"/>
-									<listOptionValue builtIn="false" value="USE_HAL_DRIVER"/>
-									<listOptionValue builtIn="false" value="STM32F401xC"/>
+									<listOptionValue builtIn="false" value="__weak=__attribute__((weak))" />
+									<listOptionValue builtIn="false" value="__packed=__attribute__((__packed__))" />
+									<listOptionValue builtIn="false" value="USE_HAL_DRIVER" />
+									<listOptionValue builtIn="false" value="STM32F401xC" />
 								</option>
-								<option id="fr.ac6.managedbuild.gnu.cpp.compiler.option.misc.other.1957070569" name="Other flags" superClass="fr.ac6.managedbuild.gnu.cpp.compiler.option.misc.other" useByScannerDiscovery="false" value="-fmessage-length=0" valueType="string"/>
-								<inputType id="fr.ac6.managedbuild.tool.gnu.cross.cpp.compiler.input.cpp.1067869339" superClass="fr.ac6.managedbuild.tool.gnu.cross.cpp.compiler.input.cpp"/>
-								<inputType id="fr.ac6.managedbuild.tool.gnu.cross.cpp.compiler.input.s.415325531" superClass="fr.ac6.managedbuild.tool.gnu.cross.cpp.compiler.input.s"/>
+								<option id="fr.ac6.managedbuild.gnu.cpp.compiler.option.misc.other.1957070569" name="Other flags" superClass="fr.ac6.managedbuild.gnu.cpp.compiler.option.misc.other" useByScannerDiscovery="false" value="-fmessage-length=0" valueType="string" />
+								<inputType id="fr.ac6.managedbuild.tool.gnu.cross.cpp.compiler.input.cpp.1067869339" superClass="fr.ac6.managedbuild.tool.gnu.cross.cpp.compiler.input.cpp" />
+								<inputType id="fr.ac6.managedbuild.tool.gnu.cross.cpp.compiler.input.s.415325531" superClass="fr.ac6.managedbuild.tool.gnu.cross.cpp.compiler.input.s" />
 							</tool>
 							<tool id="fr.ac6.managedbuild.tool.gnu.cross.c.linker.734763849" name="MCU GCC Linker" superClass="fr.ac6.managedbuild.tool.gnu.cross.c.linker">
-								<option id="fr.ac6.managedbuild.tool.gnu.cross.c.linker.script.1658978501" name="Linker Script (-T)" superClass="fr.ac6.managedbuild.tool.gnu.cross.c.linker.script" value="../STM32F401RCTx_FLASH.ld" valueType="string"/>
-								<option id="gnu.c.link.option.libs.1577512584" name="Libraries (-l)" superClass="gnu.c.link.option.libs"/>
-								<option id="gnu.c.link.option.paths.672528394" name="Library search path (-L)" superClass="gnu.c.link.option.paths"/>
-								<option id="gnu.c.link.option.ldflags.154098045" name="Linker flags" superClass="gnu.c.link.option.ldflags" value="-specs=nosys.specs -specs=nano.specs" valueType="string"/>
-								<option id="gnu.c.link.option.other.1750244990" name="Other options (-Xlinker [option])" superClass="gnu.c.link.option.other" useByScannerDiscovery="false"/>
+								<option id="fr.ac6.managedbuild.tool.gnu.cross.c.linker.script.1658978501" name="Linker Script (-T)" superClass="fr.ac6.managedbuild.tool.gnu.cross.c.linker.script" useByScannerDiscovery="false" value="../STM32F401RCTx_FLASH.ld" valueType="string" />
+								<option id="gnu.c.link.option.libs.1577512584" name="Libraries (-l)" superClass="gnu.c.link.option.libs" useByScannerDiscovery="false" />
+								<option id="gnu.c.link.option.paths.672528394" name="Library search path (-L)" superClass="gnu.c.link.option.paths" useByScannerDiscovery="false" />
+								<option id="gnu.c.link.option.ldflags.154098045" name="Linker flags" superClass="gnu.c.link.option.ldflags" useByScannerDiscovery="false" value="-specs=nosys.specs -specs=nano.specs" valueType="string" />
+								<option id="gnu.c.link.option.other.1750244990" name="Other options (-Xlinker [option])" superClass="gnu.c.link.option.other" useByScannerDiscovery="false" />
 								<inputType id="cdt.managedbuild.tool.gnu.c.linker.input.1782798623" superClass="cdt.managedbuild.tool.gnu.c.linker.input">
-									<additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
-									<additionalInput kind="additionalinput" paths="$(LIBS)"/>
+									<additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)" />
+									<additionalInput kind="additionalinput" paths="$(LIBS)" />
 								</inputType>
 							</tool>
 							<tool id="fr.ac6.managedbuild.tool.gnu.cross.cpp.linker.938815963" name="MCU G++ Linker" superClass="fr.ac6.managedbuild.tool.gnu.cross.cpp.linker">
-								<option id="fr.ac6.managedbuild.tool.gnu.cross.cpp.linker.script.2112439818" name="Linker Script (-T)" superClass="fr.ac6.managedbuild.tool.gnu.cross.cpp.linker.script" value="../STM32F401RCTx_FLASH.ld" valueType="string"/>
-								<option id="gnu.cpp.link.option.libs.433914708" name="Libraries (-l)" superClass="gnu.cpp.link.option.libs"/>
-								<option id="gnu.cpp.link.option.paths.1169917365" name="Library search path (-L)" superClass="gnu.cpp.link.option.paths"/>
-								<option id="gnu.cpp.link.option.flags.2097282192" name="Linker flags" superClass="gnu.cpp.link.option.flags" value="-specs=nosys.specs -specs=nano.specs" valueType="string"/>
-								<option id="gnu.cpp.link.option.other.1356146953" name="Other options (-Xlinker [option])" superClass="gnu.cpp.link.option.other" useByScannerDiscovery="false"/>
+								<option id="fr.ac6.managedbuild.tool.gnu.cross.cpp.linker.script.2112439818" name="Linker Script (-T)" superClass="fr.ac6.managedbuild.tool.gnu.cross.cpp.linker.script" value="../STM32F401RCTx_FLASH.ld" valueType="string" />
+								<option id="gnu.cpp.link.option.libs.433914708" name="Libraries (-l)" superClass="gnu.cpp.link.option.libs" />
+								<option id="gnu.cpp.link.option.paths.1169917365" name="Library search path (-L)" superClass="gnu.cpp.link.option.paths" />
+								<option id="gnu.cpp.link.option.flags.2097282192" name="Linker flags" superClass="gnu.cpp.link.option.flags" value="-specs=nosys.specs -specs=nano.specs" valueType="string" />
+								<option id="gnu.cpp.link.option.other.1356146953" name="Other options (-Xlinker [option])" superClass="gnu.cpp.link.option.other" useByScannerDiscovery="false" />
 								<inputType id="cdt.managedbuild.tool.gnu.cpp.linker.input.1132785883" superClass="cdt.managedbuild.tool.gnu.cpp.linker.input">
-									<additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
-									<additionalInput kind="additionalinput" paths="$(LIBS)"/>
+									<additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)" />
+									<additionalInput kind="additionalinput" paths="$(LIBS)" />
 								</inputType>
 							</tool>
-							<tool id="fr.ac6.managedbuild.tool.gnu.archiver.236222361" name="MCU GCC Archiver" superClass="fr.ac6.managedbuild.tool.gnu.archiver"/>
+							<tool id="fr.ac6.managedbuild.tool.gnu.archiver.236222361" name="MCU GCC Archiver" superClass="fr.ac6.managedbuild.tool.gnu.archiver" />
 							<tool id="fr.ac6.managedbuild.tool.gnu.cross.assembler.136539771" name="MCU GCC Assembler" superClass="fr.ac6.managedbuild.tool.gnu.cross.assembler">
-								<option id="gnu.both.asm.option.include.paths.511131086" name="Include paths (-I)" superClass="gnu.both.asm.option.include.paths"/>
-								<inputType id="cdt.managedbuild.tool.gnu.assembler.input.1202232729" superClass="cdt.managedbuild.tool.gnu.assembler.input"/>
-								<inputType id="fr.ac6.managedbuild.tool.gnu.cross.assembler.input.1521519570" superClass="fr.ac6.managedbuild.tool.gnu.cross.assembler.input"/>
+								<option id="gnu.both.asm.option.include.paths.511131086" name="Include paths (-I)" superClass="gnu.both.asm.option.include.paths" useByScannerDiscovery="false" />
+								<inputType id="cdt.managedbuild.tool.gnu.assembler.input.1202232729" superClass="cdt.managedbuild.tool.gnu.assembler.input" />
+								<inputType id="fr.ac6.managedbuild.tool.gnu.cross.assembler.input.1521519570" superClass="fr.ac6.managedbuild.tool.gnu.cross.assembler.input" />
+							</tool>
+						</toolChain>
+					</folderInfo>
+					<folderInfo id="fr.ac6.managedbuild.config.gnu.cross.exe.debug.228332542.1496823102" name="/" resourcePath="DriverSTM_RC">
+						<toolChain id="fr.ac6.managedbuild.toolchain.gnu.cross.exe.debug.353995944" name="Ac6 STM32 MCU GCC" superClass="fr.ac6.managedbuild.toolchain.gnu.cross.exe.debug" unusedChildren="">
+							<option id="fr.ac6.managedbuild.option.gnu.cross.prefix.1502652625.415453059" name="Prefix" superClass="fr.ac6.managedbuild.option.gnu.cross.prefix.1502652625" />
+							<option id="fr.ac6.managedbuild.option.gnu.cross.mcu.2089211066.482862370" name="Mcu" superClass="fr.ac6.managedbuild.option.gnu.cross.mcu.2089211066" value="STM32F401RCTx" />
+							<option id="fr.ac6.managedbuild.option.gnu.cross.board.1817078332.1107358906" name="Board" superClass="fr.ac6.managedbuild.option.gnu.cross.board.1817078332" value="Test" />
+							<option id="fr.ac6.managedbuild.option.gnu.cross.core.1083960614.373787102" name="Core" superClass="fr.ac6.managedbuild.option.gnu.cross.core.1083960614" />
+							<option id="fr.ac6.managedbuild.option.gnu.cross.instructionSet.862017745.504355119" name="Instruction Set" superClass="fr.ac6.managedbuild.option.gnu.cross.instructionSet.862017745" />
+							<option id="fr.ac6.managedbuild.option.gnu.cross.fpu.1881903435.782864950" name="Floating point hardware" superClass="fr.ac6.managedbuild.option.gnu.cross.fpu.1881903435" />
+							<option id="fr.ac6.managedbuild.option.gnu.cross.floatabi.133812733.1042710869" name="Floating-point ABI" superClass="fr.ac6.managedbuild.option.gnu.cross.floatabi.133812733" />
+							<targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.ELF" id="fr.ac6.managedbuild.targetPlatform.gnu.cross" isAbstract="false" osList="all" superClass="fr.ac6.managedbuild.targetPlatform.gnu.cross" />
+							<tool id="fr.ac6.managedbuild.tool.gnu.cross.c.compiler.496485109" name="MCU GCC Compiler" superClass="fr.ac6.managedbuild.tool.gnu.cross.c.compiler.1256041133">
+								<option id="gnu.c.compiler.option.include.paths.1952529206" name="Include paths (-I)" superClass="gnu.c.compiler.option.include.paths" useByScannerDiscovery="false" valueType="includePath">
+									<listOptionValue builtIn="false" value="../Inc" />
+									<listOptionValue builtIn="false" value="&quot;C:\Users\e_rcluze\Documents\Autres\projet\DriverSTM_RC\Include&quot;" />
+									<listOptionValue builtIn="false" value="../Drivers/STM32F4xx_HAL_Driver/Inc" />
+									<listOptionValue builtIn="false" value="../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy" />
+									<listOptionValue builtIn="false" value="../Drivers/CMSIS/Device/ST/STM32F4xx/Include" />
+									<listOptionValue builtIn="false" value="../Drivers/CMSIS/Include" />
+								</option>
+								<inputType id="fr.ac6.managedbuild.tool.gnu.cross.c.compiler.input.c.1688640839" superClass="fr.ac6.managedbuild.tool.gnu.cross.c.compiler.input.c" />
+								<inputType id="fr.ac6.managedbuild.tool.gnu.cross.c.compiler.input.s.1884115707" superClass="fr.ac6.managedbuild.tool.gnu.cross.c.compiler.input.s" />
+							</tool>
+							<tool id="fr.ac6.managedbuild.tool.gnu.cross.cpp.compiler.1463828658" name="MCU G++ Compiler" superClass="fr.ac6.managedbuild.tool.gnu.cross.cpp.compiler.627449189" />
+							<tool id="fr.ac6.managedbuild.tool.gnu.cross.c.linker.739618496" name="MCU GCC Linker" superClass="fr.ac6.managedbuild.tool.gnu.cross.c.linker.734763849" />
+							<tool id="fr.ac6.managedbuild.tool.gnu.cross.cpp.linker.829435419" name="MCU G++ Linker" superClass="fr.ac6.managedbuild.tool.gnu.cross.cpp.linker.938815963" />
+							<tool id="fr.ac6.managedbuild.tool.gnu.archiver.884032527" name="MCU GCC Archiver" superClass="fr.ac6.managedbuild.tool.gnu.archiver.236222361" />
+							<tool id="fr.ac6.managedbuild.tool.gnu.cross.assembler.1534521964" name="MCU GCC Assembler" superClass="fr.ac6.managedbuild.tool.gnu.cross.assembler.136539771">
+								<inputType id="cdt.managedbuild.tool.gnu.assembler.input.711882268" superClass="cdt.managedbuild.tool.gnu.assembler.input" />
+								<inputType id="fr.ac6.managedbuild.tool.gnu.cross.assembler.input.1874374219" superClass="fr.ac6.managedbuild.tool.gnu.cross.assembler.input" />
 							</tool>
 						</toolChain>
 					</folderInfo>
 					<sourceEntries>
-						<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="DriverSTM_RC"/>
-						<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="Drivers"/>
-						<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="Inc"/>
-						<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="Src"/>
-						<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="startup"/>
+						<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="DriverSTM_RC" />
+						<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="Drivers" />
+						<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="Inc" />
+						<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="Src" />
+						<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="startup" />
 					</sourceEntries>
 				</configuration>
 			</storageModule>
-			<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
+			<storageModule moduleId="org.eclipse.cdt.core.externalSettings" />
 		</cconfiguration>
 		<cconfiguration id="fr.ac6.managedbuild.config.gnu.cross.exe.release.1138462268">
 			<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="fr.ac6.managedbuild.config.gnu.cross.exe.release.1138462268" moduleId="org.eclipse.cdt.core.settings" name="Release">
-				<externalSettings/>
+				<externalSettings />
 				<extensions>
-					<extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
-					<extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
-					<extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
-					<extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
-					<extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
-					<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+					<extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser" />
+					<extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser" />
+					<extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser" />
+					<extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser" />
+					<extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser" />
+					<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser" />
 				</extensions>
 			</storageModule>
 			<storageModule moduleId="cdtBuildSystem" version="4.0.0">
 				<configuration artifactExtension="elf" artifactName="${ProjName}" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.exe" buildProperties="org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.exe,org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.release" cleanCommand="rm -rf" description="" id="fr.ac6.managedbuild.config.gnu.cross.exe.release.1138462268" name="Release" parent="fr.ac6.managedbuild.config.gnu.cross.exe.release" postannouncebuildStep="Generating hex and Printing size information:" postbuildStep="arm-none-eabi-objcopy -O ihex &quot;${BuildArtifactFileBaseName}.elf&quot; &quot;${BuildArtifactFileBaseName}.hex&quot; &amp;&amp; arm-none-eabi-size &quot;${BuildArtifactFileName}&quot;">
 					<folderInfo id="fr.ac6.managedbuild.config.gnu.cross.exe.release.1138462268." name="/" resourcePath="">
 						<toolChain id="fr.ac6.managedbuild.toolchain.gnu.cross.exe.release.1737844562" name="Ac6 STM32 MCU GCC" superClass="fr.ac6.managedbuild.toolchain.gnu.cross.exe.release">
-							<option id="fr.ac6.managedbuild.option.gnu.cross.prefix.1502652625" name="Prefix" superClass="fr.ac6.managedbuild.option.gnu.cross.prefix" value="arm-none-eabi-" valueType="string"/>
-							<option id="fr.ac6.managedbuild.option.gnu.cross.mcu.2089211066" name="Mcu" superClass="fr.ac6.managedbuild.option.gnu.cross.mcu" value="STM32F401RCTx" valueType="string"/>
-							<option id="fr.ac6.managedbuild.option.gnu.cross.board.1817078332" name="Board" superClass="fr.ac6.managedbuild.option.gnu.cross.board" value="Test" valueType="string"/>
+							<option id="fr.ac6.managedbuild.option.gnu.cross.prefix.1502652625" name="Prefix" superClass="fr.ac6.managedbuild.option.gnu.cross.prefix" value="arm-none-eabi-" valueType="string" />
+							<option id="fr.ac6.managedbuild.option.gnu.cross.mcu.2089211066" name="Mcu" superClass="fr.ac6.managedbuild.option.gnu.cross.mcu" value="STM32F401RCTx" valueType="string" />
+							<option id="fr.ac6.managedbuild.option.gnu.cross.board.1817078332" name="Board" superClass="fr.ac6.managedbuild.option.gnu.cross.board" value="Test" valueType="string" />
 							<option id="fr.ac6.managedbuild.option.gnu.cross.core.1083960614" name="Core" superClass="fr.ac6.managedbuild.option.gnu.cross.core" valueType="stringList">
-								<listOptionValue builtIn="false" value="ARM Cortex-M4"/>
-								<listOptionValue builtIn="false" value="CM4"/>
+								<listOptionValue builtIn="false" value="ARM Cortex-M4" />
+								<listOptionValue builtIn="false" value="CM4" />
 							</option>
-							<option id="fr.ac6.managedbuild.option.gnu.cross.instructionSet.862017745" name="Instruction Set" superClass="fr.ac6.managedbuild.option.gnu.cross.instructionSet" value="fr.ac6.managedbuild.option.gnu.cross.instructionSet.thumbII" valueType="enumerated"/>
-							<option id="fr.ac6.managedbuild.option.gnu.cross.fpu.1881903435" name="Floating point hardware" superClass="fr.ac6.managedbuild.option.gnu.cross.fpu" value="fr.ac6.managedbuild.option.gnu.cross.fpu.fpv4-sp-d16" valueType="enumerated"/>
-							<option id="fr.ac6.managedbuild.option.gnu.cross.floatabi.133812733" name="Floating-point ABI" superClass="fr.ac6.managedbuild.option.gnu.cross.floatabi" value="fr.ac6.managedbuild.option.gnu.cross.floatabi.hard" valueType="enumerated"/>
-							<targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.ELF" id="fr.ac6.managedbuild.targetPlatform.gnu.cross.1318673203" isAbstract="false" osList="all" superClass="fr.ac6.managedbuild.targetPlatform.gnu.cross"/>
+							<option id="fr.ac6.managedbuild.option.gnu.cross.instructionSet.862017745" name="Instruction Set" superClass="fr.ac6.managedbuild.option.gnu.cross.instructionSet" value="fr.ac6.managedbuild.option.gnu.cross.instructionSet.thumbII" valueType="enumerated" />
+							<option id="fr.ac6.managedbuild.option.gnu.cross.fpu.1881903435" name="Floating point hardware" superClass="fr.ac6.managedbuild.option.gnu.cross.fpu" value="fr.ac6.managedbuild.option.gnu.cross.fpu.fpv4-sp-d16" valueType="enumerated" />
+							<option id="fr.ac6.managedbuild.option.gnu.cross.floatabi.133812733" name="Floating-point ABI" superClass="fr.ac6.managedbuild.option.gnu.cross.floatabi" value="fr.ac6.managedbuild.option.gnu.cross.floatabi.hard" valueType="enumerated" />
+							<targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.ELF" id="fr.ac6.managedbuild.targetPlatform.gnu.cross.1318673203" isAbstract="false" osList="all" superClass="fr.ac6.managedbuild.targetPlatform.gnu.cross" />
 							<builder buildPath="${workspace_loc:/Test}/Release" id="fr.ac6.managedbuild.builder.gnu.cross.958728294" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Gnu Make Builder" superClass="fr.ac6.managedbuild.builder.gnu.cross">
 								<outputEntries>
-									<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="outputPath" name="Release"/>
+									<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="outputPath" name="Release" />
 								</outputEntries>
 							</builder>
 							<tool id="fr.ac6.managedbuild.tool.gnu.cross.c.compiler.1256041133" name="MCU GCC Compiler" superClass="fr.ac6.managedbuild.tool.gnu.cross.c.compiler">
-								<option defaultValue="gnu.c.optimization.level.none" id="fr.ac6.managedbuild.gnu.c.compiler.option.optimization.level.1254507645" name="Optimization Level" superClass="fr.ac6.managedbuild.gnu.c.compiler.option.optimization.level" useByScannerDiscovery="false" value="fr.ac6.managedbuild.gnu.c.optimization.level.debug" valueType="enumerated"/>
-								<option id="gnu.c.compiler.option.debugging.level.1739100078" name="Debug Level" superClass="gnu.c.compiler.option.debugging.level" useByScannerDiscovery="false" value="gnu.c.debugging.level.max" valueType="enumerated"/>
+								<option defaultValue="gnu.c.optimization.level.none" id="fr.ac6.managedbuild.gnu.c.compiler.option.optimization.level.1254507645" name="Optimization Level" superClass="fr.ac6.managedbuild.gnu.c.compiler.option.optimization.level" useByScannerDiscovery="false" value="fr.ac6.managedbuild.gnu.c.optimization.level.debug" valueType="enumerated" />
+								<option id="gnu.c.compiler.option.debugging.level.1739100078" name="Debug Level" superClass="gnu.c.compiler.option.debugging.level" useByScannerDiscovery="false" value="gnu.c.debugging.level.max" valueType="enumerated" />
 								<option id="gnu.c.compiler.option.include.paths.851746921" name="Include paths (-I)" superClass="gnu.c.compiler.option.include.paths" useByScannerDiscovery="false" valueType="includePath">
-									<listOptionValue builtIn="false" value="../Inc"/>
-									<listOptionValue builtIn="false" value="../Drivers/STM32F4xx_HAL_Driver/Inc"/>
-									<listOptionValue builtIn="false" value="../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy"/>
-									<listOptionValue builtIn="false" value="../Drivers/CMSIS/Device/ST/STM32F4xx/Include"/>
-									<listOptionValue builtIn="false" value="../Drivers/CMSIS/Include"/>
+									<listOptionValue builtIn="false" value="../Inc" />
+									<listOptionValue builtIn="false" value="../Drivers/STM32F4xx_HAL_Driver/Inc" />
+									<listOptionValue builtIn="false" value="../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy" />
+									<listOptionValue builtIn="false" value="../Drivers/CMSIS/Device/ST/STM32F4xx/Include" />
+									<listOptionValue builtIn="false" value="../Drivers/CMSIS/Include" />
 								</option>
 								<option id="gnu.c.compiler.option.preprocessor.def.symbols.2144099980" name="Defined symbols (-D)" superClass="gnu.c.compiler.option.preprocessor.def.symbols" useByScannerDiscovery="false" valueType="definedSymbols">
-									<listOptionValue builtIn="false" value="__weak=__attribute__((weak))"/>
-									<listOptionValue builtIn="false" value="__packed=__attribute__((__packed__))"/>
-									<listOptionValue builtIn="false" value="USE_HAL_DRIVER"/>
-									<listOptionValue builtIn="false" value="STM32F401xC"/>
+									<listOptionValue builtIn="false" value="__weak=__attribute__((weak))" />
+									<listOptionValue builtIn="false" value="__packed=__attribute__((__packed__))" />
+									<listOptionValue builtIn="false" value="USE_HAL_DRIVER" />
+									<listOptionValue builtIn="false" value="STM32F401xC" />
 								</option>
-								<option id="fr.ac6.managedbuild.gnu.c.compiler.option.misc.other.1532040872" superClass="fr.ac6.managedbuild.gnu.c.compiler.option.misc.other" useByScannerDiscovery="false" value="-fmessage-length=0" valueType="string"/>
-								<inputType id="fr.ac6.managedbuild.tool.gnu.cross.c.compiler.input.c.1736366554" superClass="fr.ac6.managedbuild.tool.gnu.cross.c.compiler.input.c"/>
-								<inputType id="fr.ac6.managedbuild.tool.gnu.cross.c.compiler.input.s.899990832" superClass="fr.ac6.managedbuild.tool.gnu.cross.c.compiler.input.s"/>
+								<option id="fr.ac6.managedbuild.gnu.c.compiler.option.misc.other.1532040872" superClass="fr.ac6.managedbuild.gnu.c.compiler.option.misc.other" useByScannerDiscovery="false" value="-fmessage-length=0" valueType="string" />
+								<inputType id="fr.ac6.managedbuild.tool.gnu.cross.c.compiler.input.c.1736366554" superClass="fr.ac6.managedbuild.tool.gnu.cross.c.compiler.input.c" />
+								<inputType id="fr.ac6.managedbuild.tool.gnu.cross.c.compiler.input.s.899990832" superClass="fr.ac6.managedbuild.tool.gnu.cross.c.compiler.input.s" />
 							</tool>
 							<tool id="fr.ac6.managedbuild.tool.gnu.cross.cpp.compiler.627449189" name="MCU G++ Compiler" superClass="fr.ac6.managedbuild.tool.gnu.cross.cpp.compiler">
-								<option defaultValue="gnu.cpp.optimization.level.none" id="fr.ac6.managedbuild.gnu.cpp.compiler.option.optimization.level.2042439252" name="Optimization Level" superClass="fr.ac6.managedbuild.gnu.cpp.compiler.option.optimization.level" useByScannerDiscovery="false" value="fr.ac6.managedbuild.gnu.cpp.optimization.level.debug" valueType="enumerated"/>
-								<option id="gnu.cpp.compiler.option.debugging.level.1523938362" name="Debug Level" superClass="gnu.cpp.compiler.option.debugging.level" useByScannerDiscovery="false" value="gnu.cpp.debugging.level.max" valueType="enumerated"/>
+								<option defaultValue="gnu.cpp.optimization.level.none" id="fr.ac6.managedbuild.gnu.cpp.compiler.option.optimization.level.2042439252" name="Optimization Level" superClass="fr.ac6.managedbuild.gnu.cpp.compiler.option.optimization.level" useByScannerDiscovery="false" value="fr.ac6.managedbuild.gnu.cpp.optimization.level.debug" valueType="enumerated" />
+								<option id="gnu.cpp.compiler.option.debugging.level.1523938362" name="Debug Level" superClass="gnu.cpp.compiler.option.debugging.level" useByScannerDiscovery="false" value="gnu.cpp.debugging.level.max" valueType="enumerated" />
 								<option id="gnu.cpp.compiler.option.include.paths.2062943068" name="Include paths (-I)" superClass="gnu.cpp.compiler.option.include.paths" useByScannerDiscovery="false" valueType="includePath">
-									<listOptionValue builtIn="false" value="../Inc"/>
-									<listOptionValue builtIn="false" value="../Drivers/STM32F4xx_HAL_Driver/Inc"/>
-									<listOptionValue builtIn="false" value="../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy"/>
-									<listOptionValue builtIn="false" value="../Drivers/CMSIS/Device/ST/STM32F4xx/Include"/>
-									<listOptionValue builtIn="false" value="../Drivers/CMSIS/Include"/>
+									<listOptionValue builtIn="false" value="../Inc" />
+									<listOptionValue builtIn="false" value="../Drivers/STM32F4xx_HAL_Driver/Inc" />
+									<listOptionValue builtIn="false" value="../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy" />
+									<listOptionValue builtIn="false" value="../Drivers/CMSIS/Device/ST/STM32F4xx/Include" />
+									<listOptionValue builtIn="false" value="../Drivers/CMSIS/Include" />
 								</option>
 								<option id="gnu.cpp.compiler.option.preprocessor.def.symbols.1284888863" name="Defined symbols (-D)" superClass="gnu.cpp.compiler.option.preprocessor.def.symbols" useByScannerDiscovery="false" valueType="definedSymbols">
-									<listOptionValue builtIn="false" value="__weak=__attribute__((weak))"/>
-									<listOptionValue builtIn="false" value="__packed=__attribute__((__packed__))"/>
-									<listOptionValue builtIn="false" value="USE_HAL_DRIVER"/>
-									<listOptionValue builtIn="false" value="STM32F401xC"/>
+									<listOptionValue builtIn="false" value="__weak=__attribute__((weak))" />
+									<listOptionValue builtIn="false" value="__packed=__attribute__((__packed__))" />
+									<listOptionValue builtIn="false" value="USE_HAL_DRIVER" />
+									<listOptionValue builtIn="false" value="STM32F401xC" />
 								</option>
-								<option id="fr.ac6.managedbuild.gnu.cpp.compiler.option.misc.other.1957070569" name="Other flags" superClass="fr.ac6.managedbuild.gnu.cpp.compiler.option.misc.other" useByScannerDiscovery="false" value="-fmessage-length=0" valueType="string"/>
-								<inputType id="fr.ac6.managedbuild.tool.gnu.cross.cpp.compiler.input.cpp.1067869339" superClass="fr.ac6.managedbuild.tool.gnu.cross.cpp.compiler.input.cpp"/>
-								<inputType id="fr.ac6.managedbuild.tool.gnu.cross.cpp.compiler.input.s.415325531" superClass="fr.ac6.managedbuild.tool.gnu.cross.cpp.compiler.input.s"/>
+								<option id="fr.ac6.managedbuild.gnu.cpp.compiler.option.misc.other.1957070569" name="Other flags" superClass="fr.ac6.managedbuild.gnu.cpp.compiler.option.misc.other" useByScannerDiscovery="false" value="-fmessage-length=0" valueType="string" />
+								<inputType id="fr.ac6.managedbuild.tool.gnu.cross.cpp.compiler.input.cpp.1067869339" superClass="fr.ac6.managedbuild.tool.gnu.cross.cpp.compiler.input.cpp" />
+								<inputType id="fr.ac6.managedbuild.tool.gnu.cross.cpp.compiler.input.s.415325531" superClass="fr.ac6.managedbuild.tool.gnu.cross.cpp.compiler.input.s" />
 							</tool>
 							<tool id="fr.ac6.managedbuild.tool.gnu.cross.c.linker.734763849" name="MCU GCC Linker" superClass="fr.ac6.managedbuild.tool.gnu.cross.c.linker">
-								<option id="fr.ac6.managedbuild.tool.gnu.cross.c.linker.script.1658978501" name="Linker Script (-T)" superClass="fr.ac6.managedbuild.tool.gnu.cross.c.linker.script" value="../STM32F401RCTx_FLASH.ld" valueType="string"/>
-								<option id="gnu.c.link.option.libs.1577512584" name="Libraries (-l)" superClass="gnu.c.link.option.libs"/>
-								<option id="gnu.c.link.option.paths.672528394" name="Library search path (-L)" superClass="gnu.c.link.option.paths"/>
-								<option id="gnu.c.link.option.ldflags.154098045" name="Linker flags" superClass="gnu.c.link.option.ldflags" value="-specs=nosys.specs -specs=nano.specs" valueType="string"/>
-								<option id="gnu.c.link.option.other.1750244990" name="Other options (-Xlinker [option])" superClass="gnu.c.link.option.other" useByScannerDiscovery="false"/>
+								<option id="fr.ac6.managedbuild.tool.gnu.cross.c.linker.script.1658978501" name="Linker Script (-T)" superClass="fr.ac6.managedbuild.tool.gnu.cross.c.linker.script" value="../STM32F401RCTx_FLASH.ld" valueType="string" />
+								<option id="gnu.c.link.option.libs.1577512584" name="Libraries (-l)" superClass="gnu.c.link.option.libs" />
+								<option id="gnu.c.link.option.paths.672528394" name="Library search path (-L)" superClass="gnu.c.link.option.paths" />
+								<option id="gnu.c.link.option.ldflags.154098045" name="Linker flags" superClass="gnu.c.link.option.ldflags" value="-specs=nosys.specs -specs=nano.specs" valueType="string" />
+								<option id="gnu.c.link.option.other.1750244990" name="Other options (-Xlinker [option])" superClass="gnu.c.link.option.other" useByScannerDiscovery="false" />
 								<inputType id="cdt.managedbuild.tool.gnu.c.linker.input.1782798623" superClass="cdt.managedbuild.tool.gnu.c.linker.input">
-									<additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
-									<additionalInput kind="additionalinput" paths="$(LIBS)"/>
+									<additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)" />
+									<additionalInput kind="additionalinput" paths="$(LIBS)" />
 								</inputType>
 							</tool>
 							<tool id="fr.ac6.managedbuild.tool.gnu.cross.cpp.linker.938815963" name="MCU G++ Linker" superClass="fr.ac6.managedbuild.tool.gnu.cross.cpp.linker">
-								<option id="fr.ac6.managedbuild.tool.gnu.cross.cpp.linker.script.2112439818" name="Linker Script (-T)" superClass="fr.ac6.managedbuild.tool.gnu.cross.cpp.linker.script" value="../STM32F401RCTx_FLASH.ld" valueType="string"/>
-								<option id="gnu.cpp.link.option.libs.433914708" name="Libraries (-l)" superClass="gnu.cpp.link.option.libs"/>
-								<option id="gnu.cpp.link.option.paths.1169917365" name="Library search path (-L)" superClass="gnu.cpp.link.option.paths"/>
-								<option id="gnu.cpp.link.option.ldflags.1997477199" superClass="gnu.cpp.link.option.ldflags" value="-specs=nosys.specs -specs=nano.specs" valueType="string"/>
-								<option id="gnu.cpp.link.option.other.1356146953" name="Other options (-Xlinker [option])" superClass="gnu.cpp.link.option.other" useByScannerDiscovery="false"/>
+								<option id="fr.ac6.managedbuild.tool.gnu.cross.cpp.linker.script.2112439818" name="Linker Script (-T)" superClass="fr.ac6.managedbuild.tool.gnu.cross.cpp.linker.script" value="../STM32F401RCTx_FLASH.ld" valueType="string" />
+								<option id="gnu.cpp.link.option.libs.433914708" name="Libraries (-l)" superClass="gnu.cpp.link.option.libs" />
+								<option id="gnu.cpp.link.option.paths.1169917365" name="Library search path (-L)" superClass="gnu.cpp.link.option.paths" />
+								<option id="gnu.cpp.link.option.ldflags.1997477199" superClass="gnu.cpp.link.option.ldflags" value="-specs=nosys.specs -specs=nano.specs" valueType="string" />
+								<option id="gnu.cpp.link.option.other.1356146953" name="Other options (-Xlinker [option])" superClass="gnu.cpp.link.option.other" useByScannerDiscovery="false" />
 								<inputType id="cdt.managedbuild.tool.gnu.cpp.linker.input.1132785883" superClass="cdt.managedbuild.tool.gnu.cpp.linker.input">
-									<additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
-									<additionalInput kind="additionalinput" paths="$(LIBS)"/>
+									<additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)" />
+									<additionalInput kind="additionalinput" paths="$(LIBS)" />
 								</inputType>
 							</tool>
-							<tool id="fr.ac6.managedbuild.tool.gnu.archiver.236222361" name="MCU GCC Archiver" superClass="fr.ac6.managedbuild.tool.gnu.archiver"/>
+							<tool id="fr.ac6.managedbuild.tool.gnu.archiver.236222361" name="MCU GCC Archiver" superClass="fr.ac6.managedbuild.tool.gnu.archiver" />
 							<tool id="fr.ac6.managedbuild.tool.gnu.cross.assembler.exe.release.116878663" name="MCU GCC Assembler" superClass="fr.ac6.managedbuild.tool.gnu.cross.assembler.exe.release">
-								<option id="gnu.both.asm.option.include.paths.511131086" name="Include paths (-I)" superClass="gnu.both.asm.option.include.paths"/>
-								<inputType id="cdt.managedbuild.tool.gnu.assembler.input.1202232729" superClass="cdt.managedbuild.tool.gnu.assembler.input"/>
-								<inputType id="fr.ac6.managedbuild.tool.gnu.cross.assembler.input.1521519570" superClass="fr.ac6.managedbuild.tool.gnu.cross.assembler.input"/>
+								<option id="gnu.both.asm.option.include.paths.511131086" name="Include paths (-I)" superClass="gnu.both.asm.option.include.paths" />
+								<inputType id="cdt.managedbuild.tool.gnu.assembler.input.1202232729" superClass="cdt.managedbuild.tool.gnu.assembler.input" />
+								<inputType id="fr.ac6.managedbuild.tool.gnu.cross.assembler.input.1521519570" superClass="fr.ac6.managedbuild.tool.gnu.cross.assembler.input" />
 							</tool>
 						</toolChain>
 					</folderInfo>
 					<sourceEntries>
-						<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="Drivers"/>
-						<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="Inc"/>
-						<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="Src"/>
-						<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="startup"/>
+						<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="Drivers" />
+						<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="Inc" />
+						<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="Src" />
+						<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="startup" />
 					</sourceEntries>
 				</configuration>
 			</storageModule>
-			<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
+			<storageModule moduleId="org.eclipse.cdt.core.externalSettings" />
 		</cconfiguration>
 	</storageModule>
 	<storageModule moduleId="cdtBuildSystem" version="4.0.0">
-		<project id="Test.fr.ac6.managedbuild.target.gnu.cross.exe.1336514188" name="Executable" projectType="fr.ac6.managedbuild.target.gnu.cross.exe"/>
+		<project id="Test.fr.ac6.managedbuild.target.gnu.cross.exe.1336514188" name="Executable" projectType="fr.ac6.managedbuild.target.gnu.cross.exe" />
 	</storageModule>
 	<storageModule moduleId="scannerConfiguration">
-		<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
+		<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="" />
 		<scannerConfigBuildInfo instanceId="fr.ac6.managedbuild.config.gnu.cross.exe.debug.228332542;fr.ac6.managedbuild.config.gnu.cross.exe.debug.228332542.;fr.ac6.managedbuild.tool.gnu.cross.c.compiler.1256041133;fr.ac6.managedbuild.tool.gnu.cross.c.compiler.input.c.1736366554">
-			<autodiscovery enabled="false" problemReportingEnabled="true" selectedProfileId=""/>
+			<autodiscovery enabled="false" problemReportingEnabled="true" selectedProfileId="" />
 		</scannerConfigBuildInfo>
 	</storageModule>
-	<storageModule moduleId="org.eclipse.cdt.core.LanguageSettingsProviders"/>
+	<storageModule moduleId="org.eclipse.cdt.core.LanguageSettingsProviders" />
 	<storageModule moduleId="refreshScope" versionNumber="2">
 		<configuration artifactName="${ProjName}" configurationName="Debug">
-			<resource resourceType="PROJECT" workspacePath="Test"/>
+			<resource resourceType="PROJECT" workspacePath="Test" />
 		</configuration>
 	</storageModule>
-	<storageModule moduleId="org.eclipse.cdt.make.core.buildtargets"/>
+	<storageModule moduleId="org.eclipse.cdt.make.core.buildtargets" />
 </cproject>

Разница между файлами не показана из-за своего большого размера
+ 2 - 2
Soft/STM32/Test/.mxproject


+ 1 - 1
Soft/STM32/Test/.project

@@ -28,7 +28,7 @@
 		<link>
 			<name>DriverSTM_RC</name>
 			<type>2</type>
-			<location>PARENT-3-PROJECT_LOC/DriverSTM_RC</location>
+			<location>PARENT-4-PROJECT_LOC/DriverSTM_RC</location>
 		</link>
 	</linkedResources>
 </projectDescription>

+ 0 - 189
Soft/STM32/Test/STM32F401RCTx_FLASH.ld

@@ -1,189 +0,0 @@
-/*
-******************************************************************************
-**
-
-**  File        : LinkerScript.ld
-**
-**  Author		: Auto-generated by Ac6 System Workbench
-**
-**  Abstract    : Linker script for STM32F401RCTx series
-**                256Kbytes FLASH and 64Kbytes RAM
-**
-**                Set heap size, stack size and stack location according
-**                to application requirements.
-**
-**                Set memory bank area and size if external memory is used.
-**
-**  Target      : STMicroelectronics STM32
-**
-**  Distribution: The file is distributed “as is,” without any warranty
-**                of any kind.
-**
-*****************************************************************************
-** @attention
-**
-** <h2><center>&copy; COPYRIGHT(c) 2014 Ac6</center></h2>
-**
-** Redistribution and use in source and binary forms, with or without modification,
-** are permitted provided that the following conditions are met:
-**   1. Redistributions of source code must retain the above copyright notice,
-**      this list of conditions and the following disclaimer.
-**   2. Redistributions in binary form must reproduce the above copyright notice,
-**      this list of conditions and the following disclaimer in the documentation
-**      and/or other materials provided with the distribution.
-**   3. Neither the name of Ac6 nor the names of its contributors
-**      may be used to endorse or promote products derived from this software
-**      without specific prior written permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-** AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-** IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-** DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-** FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-** DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-** SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-** CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-** OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-**
-*****************************************************************************
-*/
-
-/* Entry Point */
-ENTRY(Reset_Handler)
-
-/* Highest address of the user mode stack */
-_estack = 0x20010000;    /* end of RAM */
-/* Generate a link error if heap and stack don't fit into RAM */
-_Min_Heap_Size = 0x200;      /* required amount of heap  */
-_Min_Stack_Size = 0x400; /* required amount of stack */
-
-/* Specify the memory areas */
-MEMORY
-{
-RAM (xrw)      : ORIGIN = 0x20000000, LENGTH = 64K
-FLASH (rx)      : ORIGIN = 0x8000000, LENGTH = 256K
-}
-
-/* Define output sections */
-SECTIONS
-{
-  /* The startup code goes first into FLASH */
-  .isr_vector :
-  {
-    . = ALIGN(4);
-    KEEP(*(.isr_vector)) /* Startup code */
-    . = ALIGN(4);
-  } >FLASH
-
-  /* The program code and other data goes into FLASH */
-  .text :
-  {
-    . = ALIGN(4);
-    *(.text)           /* .text sections (code) */
-    *(.text*)          /* .text* sections (code) */
-    *(.glue_7)         /* glue arm to thumb code */
-    *(.glue_7t)        /* glue thumb to arm code */
-    *(.eh_frame)
-
-    KEEP (*(.init))
-    KEEP (*(.fini))
-
-    . = ALIGN(4);
-    _etext = .;        /* define a global symbols at end of code */
-  } >FLASH
-
-  /* Constant data goes into FLASH */
-  .rodata :
-  {
-    . = ALIGN(4);
-    *(.rodata)         /* .rodata sections (constants, strings, etc.) */
-    *(.rodata*)        /* .rodata* sections (constants, strings, etc.) */
-    . = ALIGN(4);
-  } >FLASH
-
-  .ARM.extab   : { *(.ARM.extab* .gnu.linkonce.armextab.*) } >FLASH
-  .ARM : {
-    __exidx_start = .;
-    *(.ARM.exidx*)
-    __exidx_end = .;
-  } >FLASH
-
-  .preinit_array     :
-  {
-    PROVIDE_HIDDEN (__preinit_array_start = .);
-    KEEP (*(.preinit_array*))
-    PROVIDE_HIDDEN (__preinit_array_end = .);
-  } >FLASH
-  .init_array :
-  {
-    PROVIDE_HIDDEN (__init_array_start = .);
-    KEEP (*(SORT(.init_array.*)))
-    KEEP (*(.init_array*))
-    PROVIDE_HIDDEN (__init_array_end = .);
-  } >FLASH
-  .fini_array :
-  {
-    PROVIDE_HIDDEN (__fini_array_start = .);
-    KEEP (*(SORT(.fini_array.*)))
-    KEEP (*(.fini_array*))
-    PROVIDE_HIDDEN (__fini_array_end = .);
-  } >FLASH
-
-  /* used by the startup to initialize data */
-  _sidata = LOADADDR(.data);
-
-  /* Initialized data sections goes into RAM, load LMA copy after code */
-  .data : 
-  {
-    . = ALIGN(4);
-    _sdata = .;        /* create a global symbol at data start */
-    *(.data)           /* .data sections */
-    *(.data*)          /* .data* sections */
-
-    . = ALIGN(4);
-    _edata = .;        /* define a global symbol at data end */
-  } >RAM AT> FLASH
-
-  
-  /* Uninitialized data section */
-  . = ALIGN(4);
-  .bss :
-  {
-    /* This is used by the startup in order to initialize the .bss secion */
-    _sbss = .;         /* define a global symbol at bss start */
-    __bss_start__ = _sbss;
-    *(.bss)
-    *(.bss*)
-    *(COMMON)
-
-    . = ALIGN(4);
-    _ebss = .;         /* define a global symbol at bss end */
-    __bss_end__ = _ebss;
-  } >RAM
-
-  /* User_heap_stack section, used to check that there is enough RAM left */
-  ._user_heap_stack :
-  {
-    . = ALIGN(8);
-    PROVIDE ( end = . );
-    PROVIDE ( _end = . );
-    . = . + _Min_Heap_Size;
-    . = . + _Min_Stack_Size;
-    . = ALIGN(8);
-  } >RAM
-
-  
-
-  /* Remove information from the standard libraries */
-  /DISCARD/ :
-  {
-    libc.a ( * )
-    libm.a ( * )
-    libgcc.a ( * )
-  }
-
-  .ARM.attributes 0 : { *(.ARM.attributes) }
-}
-
-

+ 1 - 5
Soft/STM32/Test/Src/gpio.c

@@ -58,9 +58,6 @@ void MX_GPIO_Init(void)
   /*Configure GPIO pin Output Level */
   HAL_GPIO_WritePin(GPIOC, WC_Pin|LED_rouge_Pin|LED_vert_Pin, GPIO_PIN_RESET);
 
-  /*Configure GPIO pin Output Level */
-  HAL_GPIO_WritePin(aquit_GPIO_Port, aquit_Pin, GPIO_PIN_RESET);
-
   /*Configure GPIO pin Output Level */
   HAL_GPIO_WritePin(GPIOB, LED_orange_Pin|MFP_Pin, GPIO_PIN_RESET);
 
@@ -83,9 +80,8 @@ void MX_GPIO_Init(void)
 
   /*Configure GPIO pin : PtPin */
   GPIO_InitStruct.Pin = aquit_Pin;
-  GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+  GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
   GPIO_InitStruct.Pull = GPIO_NOPULL;
-  GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
   HAL_GPIO_Init(aquit_GPIO_Port, &GPIO_InitStruct);
 
   /*Configure GPIO pins : PBPin PBPin */

+ 1 - 2
Soft/STM32/Test/Src/i2c.c

@@ -19,10 +19,9 @@
 
 /* Includes ------------------------------------------------------------------*/
 #include "i2c.h"
-#include "RTC.h"
 
 /* USER CODE BEGIN 0 */
-
+#include "RTC.h"
 /* USER CODE END 0 */
 
 I2C_HandleTypeDef hi2c2;

+ 116 - 6
Soft/STM32/Test/Src/main.c

@@ -39,6 +39,19 @@
 
 /* Private define ------------------------------------------------------------*/
 /* USER CODE BEGIN PD */
+  void testRTC();
+  void testBatteryRTC();
+  void testEeprom();
+  void testAquit();
+  void testLed();
+  void testSortie();
+  void testSPI();
+  void testVent();
+  void testtemp();
+  void TestOn();
+  void TestOFF();
+  void TestPWM();
+
 
 /* USER CODE END PD */
 
@@ -103,10 +116,18 @@ int main(void)
   MX_ADC1_Init();
   MX_TIM2_Init();
   /* USER CODE BEGIN 2 */
-  void testRTC();
-  void testBatteryRTC();
-  void testEeprom();
-  void testAquit();
+  testRTC();
+  testBatteryRTC();
+  testEeprom();
+  testAquit();
+  testLed();
+  testSortie();
+  testSPI();
+  testVent();
+  testtemp();
+  TestOn();
+  TestOFF();
+  TestPWM();
 
 
   /* USER CODE END 2 */
@@ -167,9 +188,98 @@ void SystemClock_Config(void)
 /* USER CODE BEGIN 4 */
 
 void testAquit(){
-while (HAL_GPIO_ReadPin(aquit_GPIO_Port,aquit_Pin));
-HAL_Delay(1);
+	while (HAL_GPIO_ReadPin(aquit_GPIO_Port,aquit_Pin));
+	HAL_Delay(1);
+}
+
+void testLed(){
+	HAL_GPIO_WritePin(LED_vert_GPIO_Port,LED_vert_Pin,0);
+	HAL_GPIO_WritePin(LED_orange_GPIO_Port,LED_orange_Pin,0);
+	HAL_GPIO_WritePin(LED_rouge_GPIO_Port,LED_rouge_Pin,0);
+	HAL_Delay(1000);
+	HAL_GPIO_WritePin(LED_vert_GPIO_Port,LED_vert_Pin,1);
+	HAL_GPIO_WritePin(LED_orange_GPIO_Port,LED_orange_Pin,1);
+	HAL_GPIO_WritePin(LED_rouge_GPIO_Port,LED_rouge_Pin,1);
+	HAL_Delay(1000);
 }
+
+void testSortie(){
+
+	HAL_GPIO_WritePin(S1_GPIO_Port,S1_Pin,0);
+	HAL_GPIO_WritePin(S2_GPIO_Port,S2_Pin,0);
+	HAL_GPIO_WritePin(S3_GPIO_Port,S3_Pin,0);
+	HAL_GPIO_WritePin(S4_GPIO_Port,S4_Pin,0);
+	HAL_GPIO_WritePin(S5_GPIO_Port,S5_Pin,0);
+	HAL_GPIO_WritePin(S6_GPIO_Port,S6_Pin,0);
+	HAL_GPIO_WritePin(S7_GPIO_Port,S7_Pin,0);
+	HAL_GPIO_WritePin(S8_GPIO_Port,S8_Pin,0);
+	HAL_GPIO_WritePin(S9_GPIO_Port,S9_Pin,0);
+	HAL_GPIO_WritePin(S10_GPIO_Port,S10_Pin,0);
+
+	HAL_Delay(1000);
+
+	HAL_GPIO_WritePin(S1_GPIO_Port,S1_Pin,1);
+	HAL_GPIO_WritePin(S2_GPIO_Port,S2_Pin,1);
+	HAL_GPIO_WritePin(S3_GPIO_Port,S3_Pin,1);
+	HAL_GPIO_WritePin(S4_GPIO_Port,S4_Pin,1);
+	HAL_GPIO_WritePin(S5_GPIO_Port,S5_Pin,1);
+	HAL_GPIO_WritePin(S6_GPIO_Port,S6_Pin,1);
+	HAL_GPIO_WritePin(S7_GPIO_Port,S7_Pin,1);
+	HAL_GPIO_WritePin(S8_GPIO_Port,S8_Pin,1);
+	HAL_GPIO_WritePin(S9_GPIO_Port,S9_Pin,1);
+	HAL_GPIO_WritePin(S10_GPIO_Port,S10_Pin,1);
+
+	HAL_Delay(1000);
+}
+
+void testSPI(){
+	uint8_t data[1];
+	HAL_SPI_Receive(&hspi1,data,1,1000);
+	data[1]++;
+	HAL_SPI_Transmit(&hspi1,data,1,1000);
+
+}
+
+void testVent(){
+	TIM_OC_InitTypeDef sConfigOC;
+
+	sConfigOC.OCMode = TIM_OCMODE_PWM1;
+	sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH;
+	sConfigOC.OCFastMode = TIM_OCFAST_DISABLE;
+
+	for (int i = 0; i<31250-1;i=i+3125){
+		sConfigOC.Pulse = i;
+		HAL_TIM_PWM_ConfigChannel(&htim2, &sConfigOC, TIM_CHANNEL_2);
+		HAL_TIM_PWM_Start(&htim2, TIM_CHANNEL_2);
+		HAL_Delay(1000);
+	}
+
+}
+
+void testtemp(){
+	int i;
+	while(1){
+		i = HAL_ADC_GetValue(&hadc1);
+		HAL_Delay(1);
+	}
+
+}
+
+void TestPWM(){
+	TIM_OC_InitTypeDef sConfigOC;
+
+	sConfigOC.OCMode = TIM_OCMODE_PWM1;
+	sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH;
+	sConfigOC.OCFastMode = TIM_OCFAST_DISABLE;
+
+	for (int i = 0; i<31250-1;i=i+3125){
+		sConfigOC.Pulse = i;
+		HAL_TIM_PWM_ConfigChannel(&htim2, &sConfigOC, TIM_CHANNEL_3);
+		HAL_TIM_PWM_Start(&htim2, TIM_CHANNEL_3);
+		HAL_Delay(1000);
+	}
+}
+
 /* USER CODE END 4 */
 
 /**

+ 2 - 3
Soft/STM32/Test/Src/spi.c

@@ -31,13 +31,12 @@ void MX_SPI1_Init(void)
 {
 
   hspi1.Instance = SPI1;
-  hspi1.Init.Mode = SPI_MODE_MASTER;
+  hspi1.Init.Mode = SPI_MODE_SLAVE;
   hspi1.Init.Direction = SPI_DIRECTION_2LINES;
   hspi1.Init.DataSize = SPI_DATASIZE_8BIT;
   hspi1.Init.CLKPolarity = SPI_POLARITY_LOW;
   hspi1.Init.CLKPhase = SPI_PHASE_1EDGE;
-  hspi1.Init.NSS = SPI_NSS_HARD_OUTPUT;
-  hspi1.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_2;
+  hspi1.Init.NSS = SPI_NSS_HARD_INPUT;
   hspi1.Init.FirstBit = SPI_FIRSTBIT_MSB;
   hspi1.Init.TIMode = SPI_TIMODE_DISABLE;
   hspi1.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE;

+ 33 - 32
Soft/STM32/Test/Test.ioc

@@ -1,8 +1,9 @@
 #MicroXplorer Configuration settings - do not modify
 ADC1.Channel-69\#ChannelRegularConversion=ADC_CHANNEL_9
-ADC1.IPParameters=Rank-69\#ChannelRegularConversion,Channel-69\#ChannelRegularConversion,SamplingTime-69\#ChannelRegularConversion,NbrOfConversionFlag,master
+ADC1.IPParameters=Rank-69\#ChannelRegularConversion,Channel-69\#ChannelRegularConversion,SamplingTime-69\#ChannelRegularConversion,NbrOfConversionFlag,master,Resolution
 ADC1.NbrOfConversionFlag=1
 ADC1.Rank-69\#ChannelRegularConversion=1
+ADC1.Resolution=ADC_RESOLUTION_8B
 ADC1.SamplingTime-69\#ChannelRegularConversion=ADC_SAMPLETIME_3CYCLES
 ADC1.master=1
 File.Version=6
@@ -42,30 +43,29 @@ Mcu.Pin2=PH1 - OSC_OUT
 Mcu.Pin20=PC9
 Mcu.Pin21=PA8
 Mcu.Pin22=PA9
-Mcu.Pin23=PA10
-Mcu.Pin24=PA11
-Mcu.Pin25=PA12
-Mcu.Pin26=PA13
-Mcu.Pin27=PA14
-Mcu.Pin28=PB3
-Mcu.Pin29=PB4
+Mcu.Pin23=PA11
+Mcu.Pin24=PA12
+Mcu.Pin25=PA13
+Mcu.Pin26=PA14
+Mcu.Pin27=PB3
+Mcu.Pin28=PB4
+Mcu.Pin29=PB6
 Mcu.Pin3=PA0-WKUP
-Mcu.Pin30=PB6
-Mcu.Pin31=PB7
-Mcu.Pin32=PB8
-Mcu.Pin33=PB9
-Mcu.Pin34=VP_SYS_VS_tim5
-Mcu.Pin35=VP_TIM1_VS_ControllerModeClock
-Mcu.Pin36=VP_TIM1_VS_ClockSourceITR
-Mcu.Pin37=VP_TIM9_VS_ClockSourceITR
-Mcu.Pin38=VP_TIM9_VS_no_output1
+Mcu.Pin30=PB7
+Mcu.Pin31=PB8
+Mcu.Pin32=PB9
+Mcu.Pin33=VP_SYS_VS_tim5
+Mcu.Pin34=VP_TIM1_VS_ControllerModeClock
+Mcu.Pin35=VP_TIM1_VS_ClockSourceITR
+Mcu.Pin36=VP_TIM9_VS_ClockSourceITR
+Mcu.Pin37=VP_TIM9_VS_no_output1
 Mcu.Pin4=PA1
 Mcu.Pin5=PA2
 Mcu.Pin6=PA3
 Mcu.Pin7=PA4
 Mcu.Pin8=PA5
 Mcu.Pin9=PA6
-Mcu.PinsNb=39
+Mcu.PinsNb=38
 Mcu.ThirdPartyNb=0
 Mcu.UserConstants=
 Mcu.UserName=STM32F401RCTx
@@ -76,6 +76,7 @@ NVIC.DebugMonitor_IRQn=true\:0\:0\:false\:false\:true\:true\:false
 NVIC.HardFault_IRQn=true\:0\:0\:false\:false\:true\:true\:false
 NVIC.MemoryManagement_IRQn=true\:0\:0\:false\:false\:true\:true\:false
 NVIC.NonMaskableInt_IRQn=true\:0\:0\:false\:false\:true\:true\:false
+NVIC.OTG_FS_IRQn=true\:0\:0\:false\:false\:true\:true\:true
 NVIC.PendSV_IRQn=true\:0\:0\:false\:false\:true\:true\:false
 NVIC.PriorityGroup=NVIC_PRIORITYGROUP_4
 NVIC.SVCall_IRQn=true\:0\:0\:false\:false\:true\:true\:false
@@ -92,11 +93,9 @@ PA1.GPIOParameters=GPIO_Label
 PA1.GPIO_Label=CMD
 PA1.Locked=true
 PA1.Signal=S_TIM2_CH2
-PA10.Mode=OTG/Dual_Role_Device
-PA10.Signal=USB_OTG_FS_ID
-PA11.Mode=OTG/Dual_Role_Device
+PA11.Mode=Device_Only
 PA11.Signal=USB_OTG_FS_DM
-PA12.Mode=OTG/Dual_Role_Device
+PA12.Mode=Device_Only
 PA12.Signal=USB_OTG_FS_DP
 PA13.Mode=Serial_Wire
 PA13.Signal=SYS_JTMS-SWDIO
@@ -111,13 +110,13 @@ PA3.GPIO_Label=S2
 PA3.Locked=true
 PA3.Signal=S_TIM2_CH4
 PA4.Locked=true
-PA4.Mode=NSS_Signal_Hard_Output
+PA4.Mode=NSS_Signal_Hard_Input
 PA4.Signal=SPI1_NSS
-PA5.Mode=Full_Duplex_Master
+PA5.Mode=Full_Duplex_Slave
 PA5.Signal=SPI1_SCK
-PA6.Mode=Full_Duplex_Master
+PA6.Mode=Full_Duplex_Slave
 PA6.Signal=SPI1_MISO
-PA7.Mode=Full_Duplex_Master
+PA7.Mode=Full_Duplex_Slave
 PA7.Signal=SPI1_MOSI
 PA8.Mode=I2C
 PA8.Signal=I2C3_SCL
@@ -222,7 +221,7 @@ ProjectManager.StackSize=0x400
 ProjectManager.TargetToolchain=SW4STM32
 ProjectManager.ToolChainLocation=
 ProjectManager.UnderRoot=true
-ProjectManager.functionlistsort=1-MX_GPIO_Init-GPIO-false-HAL-true,2-SystemClock_Config-RCC-false-HAL-true,3-MX_USB_OTG_FS_USB_Init-USB_OTG_FS-false-HAL-true,4-MX_TIM4_Init-TIM4-false-HAL-true,5-MX_TIM3_Init-TIM3-false-HAL-true,6-MX_I2C3_Init-I2C3-false-HAL-true,7-MX_I2C2_Init-I2C2-false-HAL-true,8-MX_SPI1_Init-SPI1-false-HAL-true,9-MX_TIM9_Init-TIM9-false-HAL-true,10-MX_TIM1_Init-TIM1-false-HAL-true,11-MX_ADC1_Init-ADC1-false-HAL-true,12-MX_TIM2_Init-TIM2-false-HAL-true
+ProjectManager.functionlistsort=1-MX_GPIO_Init-GPIO-false-HAL-true,2-SystemClock_Config-RCC-false-HAL-true,3-MX_USB_OTG_FS_PCD_Init-USB_OTG_FS-false-HAL-true,4-MX_TIM4_Init-TIM4-false-HAL-true,5-MX_TIM3_Init-TIM3-false-HAL-true,6-MX_I2C3_Init-I2C3-false-HAL-true,7-MX_I2C2_Init-I2C2-false-HAL-true,8-MX_SPI1_Init-SPI1-false-HAL-true,9-MX_TIM9_Init-TIM9-false-HAL-true,10-MX_TIM1_Init-TIM1-false-HAL-true,11-MX_ADC1_Init-ADC1-false-HAL-true,12-MX_TIM2_Init-TIM2-false-HAL-true
 RCC.48MHZClocksFreq_Value=48000000
 RCC.AHBFreq_Value=84000000
 RCC.APB1CLKDivider=RCC_HCLK_DIV2
@@ -236,7 +235,7 @@ RCC.HCLKFreq_Value=84000000
 RCC.HSE_VALUE=25000000
 RCC.HSI_VALUE=16000000
 RCC.I2SClocksFreq_Value=96000000
-RCC.IPParameters=48MHZClocksFreq_Value,AHBFreq_Value,APB1CLKDivider,APB1Freq_Value,APB1TimFreq_Value,APB2Freq_Value,APB2TimFreq_Value,CortexFreq_Value,FCLKCortexFreq_Value,HCLKFreq_Value,HSE_VALUE,HSI_VALUE,I2SClocksFreq_Value,LSE_VALUE,LSI_VALUE,MCO2PinFreq_Value,PLLCLKFreq_Value,PLLM,PLLN,PLLP,PLLQ,PLLQCLKFreq_Value,RTCFreq_Value,RTCHSEDivFreq_Value,SYSCLKFreq_VALUE,SYSCLKSource,VCOI2SOutputFreq_Value,VCOInputFreq_Value,VCOOutputFreq_Value,VcooutputI2S
+RCC.IPParameters=48MHZClocksFreq_Value,AHBFreq_Value,APB1CLKDivider,APB1Freq_Value,APB1TimFreq_Value,APB2Freq_Value,APB2TimFreq_Value,CortexFreq_Value,FCLKCortexFreq_Value,HCLKFreq_Value,HSE_VALUE,HSI_VALUE,I2SClocksFreq_Value,LSE_VALUE,LSI_VALUE,MCO2PinFreq_Value,PLLCLKFreq_Value,PLLM,PLLN,PLLP,PLLQ,PLLQCLKFreq_Value,PLLSourceVirtual,RTCFreq_Value,RTCHSEDivFreq_Value,SYSCLKFreq_VALUE,SYSCLKSource,VCOI2SOutputFreq_Value,VCOInputFreq_Value,VCOOutputFreq_Value,VcooutputI2S
 RCC.LSE_VALUE=32768
 RCC.LSI_VALUE=32000
 RCC.MCO2PinFreq_Value=84000000
@@ -246,6 +245,7 @@ RCC.PLLN=336
 RCC.PLLP=RCC_PLLP_DIV4
 RCC.PLLQ=7
 RCC.PLLQCLKFreq_Value=48000000
+RCC.PLLSourceVirtual=RCC_PLLSOURCE_HSE
 RCC.RTCFreq_Value=32000
 RCC.RTCHSEDivFreq_Value=12500000
 RCC.SYSCLKFreq_VALUE=84000000
@@ -278,12 +278,11 @@ SH.S_TIM4_CH3.0=TIM4_CH3,PWM Generation3 CH3
 SH.S_TIM4_CH3.ConfNb=1
 SH.S_TIM4_CH4.0=TIM4_CH4,PWM Generation4 CH4
 SH.S_TIM4_CH4.ConfNb=1
-SPI1.CalculateBaudRate=42.0 MBits/s
 SPI1.Direction=SPI_DIRECTION_2LINES
-SPI1.IPParameters=VirtualType,Mode,Direction,CalculateBaudRate,VirtualNSS
-SPI1.Mode=SPI_MODE_MASTER
+SPI1.IPParameters=VirtualType,Mode,Direction,VirtualNSS
+SPI1.Mode=SPI_MODE_SLAVE
 SPI1.VirtualNSS=VM_NSSHARD
-SPI1.VirtualType=VM_MASTER
+SPI1.VirtualType=VM_SLAVE
 TIM1.Channel-Output\ Compare1\ CH1N=TIM_CHANNEL_1
 TIM1.IPParameters=Channel-Output Compare1 CH1N
 TIM2.Channel-PWM\ Generation2\ CH2=TIM_CHANNEL_2
@@ -308,6 +307,8 @@ TIM4.Period=31250-1
 TIM4.Prescaler=8-1
 TIM9.Channel-PWM\ Generation1\ No\ Output=TIM_CHANNEL_1
 TIM9.IPParameters=Channel-PWM Generation1 No Output
+USB_OTG_FS.IPParameters=VirtualMode
+USB_OTG_FS.VirtualMode=Device_Only
 VP_SYS_VS_tim5.Mode=TIM5
 VP_SYS_VS_tim5.Signal=SYS_VS_tim5
 VP_TIM1_VS_ClockSourceITR.Mode=TriggerSource_ITR0

Некоторые файлы не были показаны из-за большого количества измененных файлов