diff --git a/.mxproject b/.mxproject
index 4c07ff9878341d47b4ff6a81ce196237f24d62fa..3904f68b0186aa65e07cfb81d7bf48ffc3ac5713 100644
--- a/.mxproject
+++ b/.mxproject
@@ -7,8 +7,8 @@ HeaderPath=..\Drivers\STM32F4xx_HAL_Driver\Inc;..\Drivers\STM32F4xx_HAL_Driver\I
 CDefines=USE_HAL_DRIVER;STM32F427xx;USE_HAL_DRIVER;USE_HAL_DRIVER;
 
 [PreviousGenFiles]
-HeaderPath=C:/Users/sfaguet/Documents/RobotMaster_allRobots/Inc
+HeaderPath=C:/Users/Sébastien/Documents/robomaster_allrobots/Inc
 HeaderFiles=gpio.h;adc.h;can.h;dma.h;spi.h;tim.h;usart.h;stm32f4xx_it.h;stm32f4xx_hal_conf.h;main.h;
-SourcePath=C:/Users/sfaguet/Documents/RobotMaster_allRobots/Src
+SourcePath=C:/Users/Sébastien/Documents/robomaster_allrobots/Src
 SourceFiles=gpio.c;adc.c;can.c;dma.c;spi.c;tim.c;usart.c;stm32f4xx_it.c;stm32f4xx_hal_msp.c;main.c;
 
diff --git a/MDK-ARM/RobotMaster_allRobots.uvoptx b/MDK-ARM/RobotMaster_allRobots.uvoptx
index 98449611447213513ee7f12825b7a1121ab8085c..57ff2d7fe6ace4258637e81b18e452784b1d3b52 100644
--- a/MDK-ARM/RobotMaster_allRobots.uvoptx
+++ b/MDK-ARM/RobotMaster_allRobots.uvoptx
@@ -236,279 +236,279 @@
   </Target>
 
   <Group>
-    <GroupName>User</GroupName>
-    <tvExp>1</tvExp>
+    <GroupName>Startup</GroupName>
+    <tvExp>0</tvExp>
     <tvExpOptDlg>0</tvExpOptDlg>
     <cbSel>0</cbSel>
     <RteFlg>0</RteFlg>
     <File>
       <GroupNumber>1</GroupNumber>
       <FileNumber>1</FileNumber>
-      <FileType>1</FileType>
+      <FileType>2</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
       <bDave2>0</bDave2>
-      <PathWithFileName>..\Src\adc.c</PathWithFileName>
-      <FilenameWithoutPath>adc.c</FilenameWithoutPath>
+      <PathWithFileName>.\startup_stm32f427xx.s</PathWithFileName>
+      <FilenameWithoutPath>startup_stm32f427xx.s</FilenameWithoutPath>
       <RteFlg>0</RteFlg>
       <bShared>0</bShared>
     </File>
+  </Group>
+
+  <Group>
+    <GroupName>Drivers/STM32F4xx_HAL_Driver</GroupName>
+    <tvExp>0</tvExp>
+    <tvExpOptDlg>0</tvExpOptDlg>
+    <cbSel>0</cbSel>
+    <RteFlg>0</RteFlg>
     <File>
-      <GroupNumber>1</GroupNumber>
+      <GroupNumber>2</GroupNumber>
       <FileNumber>2</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
       <bDave2>0</bDave2>
-      <PathWithFileName>..\Src\can.c</PathWithFileName>
-      <FilenameWithoutPath>can.c</FilenameWithoutPath>
+      <PathWithFileName>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.c</PathWithFileName>
+      <FilenameWithoutPath>stm32f4xx_hal_adc.c</FilenameWithoutPath>
       <RteFlg>0</RteFlg>
       <bShared>0</bShared>
     </File>
     <File>
-      <GroupNumber>1</GroupNumber>
+      <GroupNumber>2</GroupNumber>
       <FileNumber>3</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
       <bDave2>0</bDave2>
-      <PathWithFileName>..\Src\dma.c</PathWithFileName>
-      <FilenameWithoutPath>dma.c</FilenameWithoutPath>
+      <PathWithFileName>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc_ex.c</PathWithFileName>
+      <FilenameWithoutPath>stm32f4xx_hal_adc_ex.c</FilenameWithoutPath>
       <RteFlg>0</RteFlg>
       <bShared>0</bShared>
     </File>
     <File>
-      <GroupNumber>1</GroupNumber>
+      <GroupNumber>2</GroupNumber>
       <FileNumber>4</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
       <bDave2>0</bDave2>
-      <PathWithFileName>..\Src\gpio.c</PathWithFileName>
-      <FilenameWithoutPath>gpio.c</FilenameWithoutPath>
+      <PathWithFileName>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.c</PathWithFileName>
+      <FilenameWithoutPath>stm32f4xx_hal_rcc.c</FilenameWithoutPath>
       <RteFlg>0</RteFlg>
       <bShared>0</bShared>
     </File>
     <File>
-      <GroupNumber>1</GroupNumber>
+      <GroupNumber>2</GroupNumber>
       <FileNumber>5</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
       <bDave2>0</bDave2>
-      <PathWithFileName>..\Src\main.c</PathWithFileName>
-      <FilenameWithoutPath>main.c</FilenameWithoutPath>
+      <PathWithFileName>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.c</PathWithFileName>
+      <FilenameWithoutPath>stm32f4xx_hal_rcc_ex.c</FilenameWithoutPath>
       <RteFlg>0</RteFlg>
       <bShared>0</bShared>
     </File>
     <File>
-      <GroupNumber>1</GroupNumber>
+      <GroupNumber>2</GroupNumber>
       <FileNumber>6</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
       <bDave2>0</bDave2>
-      <PathWithFileName>..\Src\spi.c</PathWithFileName>
-      <FilenameWithoutPath>spi.c</FilenameWithoutPath>
+      <PathWithFileName>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c</PathWithFileName>
+      <FilenameWithoutPath>stm32f4xx_hal_flash.c</FilenameWithoutPath>
       <RteFlg>0</RteFlg>
       <bShared>0</bShared>
     </File>
     <File>
-      <GroupNumber>1</GroupNumber>
+      <GroupNumber>2</GroupNumber>
       <FileNumber>7</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
       <bDave2>0</bDave2>
-      <PathWithFileName>..\Src\tim.c</PathWithFileName>
-      <FilenameWithoutPath>tim.c</FilenameWithoutPath>
+      <PathWithFileName>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c</PathWithFileName>
+      <FilenameWithoutPath>stm32f4xx_hal_flash_ex.c</FilenameWithoutPath>
       <RteFlg>0</RteFlg>
       <bShared>0</bShared>
     </File>
     <File>
-      <GroupNumber>1</GroupNumber>
+      <GroupNumber>2</GroupNumber>
       <FileNumber>8</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
       <bDave2>0</bDave2>
-      <PathWithFileName>..\Src\usart.c</PathWithFileName>
-      <FilenameWithoutPath>usart.c</FilenameWithoutPath>
+      <PathWithFileName>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ramfunc.c</PathWithFileName>
+      <FilenameWithoutPath>stm32f4xx_hal_flash_ramfunc.c</FilenameWithoutPath>
       <RteFlg>0</RteFlg>
       <bShared>0</bShared>
     </File>
     <File>
-      <GroupNumber>1</GroupNumber>
+      <GroupNumber>2</GroupNumber>
       <FileNumber>9</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
       <bDave2>0</bDave2>
-      <PathWithFileName>..\Src\stm32f4xx_hal_msp.c</PathWithFileName>
-      <FilenameWithoutPath>stm32f4xx_hal_msp.c</FilenameWithoutPath>
+      <PathWithFileName>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c</PathWithFileName>
+      <FilenameWithoutPath>stm32f4xx_hal_gpio.c</FilenameWithoutPath>
       <RteFlg>0</RteFlg>
       <bShared>0</bShared>
     </File>
     <File>
-      <GroupNumber>1</GroupNumber>
+      <GroupNumber>2</GroupNumber>
       <FileNumber>10</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
       <bDave2>0</bDave2>
-      <PathWithFileName>..\Src\stm32f4xx_it.c</PathWithFileName>
-      <FilenameWithoutPath>stm32f4xx_it.c</FilenameWithoutPath>
+      <PathWithFileName>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.c</PathWithFileName>
+      <FilenameWithoutPath>stm32f4xx_hal_dma_ex.c</FilenameWithoutPath>
       <RteFlg>0</RteFlg>
       <bShared>0</bShared>
     </File>
     <File>
-      <GroupNumber>1</GroupNumber>
+      <GroupNumber>2</GroupNumber>
       <FileNumber>11</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
       <bDave2>0</bDave2>
-      <PathWithFileName>..\Src\system_stm32f4xx.c</PathWithFileName>
-      <FilenameWithoutPath>system_stm32f4xx.c</FilenameWithoutPath>
+      <PathWithFileName>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c</PathWithFileName>
+      <FilenameWithoutPath>stm32f4xx_hal_dma.c</FilenameWithoutPath>
       <RteFlg>0</RteFlg>
       <bShared>0</bShared>
     </File>
-  </Group>
-
-  <Group>
-    <GroupName>Startup</GroupName>
-    <tvExp>1</tvExp>
-    <tvExpOptDlg>0</tvExpOptDlg>
-    <cbSel>0</cbSel>
-    <RteFlg>0</RteFlg>
     <File>
       <GroupNumber>2</GroupNumber>
       <FileNumber>12</FileNumber>
-      <FileType>2</FileType>
+      <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
       <bDave2>0</bDave2>
-      <PathWithFileName>.\startup_stm32f427xx.s</PathWithFileName>
-      <FilenameWithoutPath>startup_stm32f427xx.s</FilenameWithoutPath>
+      <PathWithFileName>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.c</PathWithFileName>
+      <FilenameWithoutPath>stm32f4xx_hal_pwr.c</FilenameWithoutPath>
       <RteFlg>0</RteFlg>
       <bShared>0</bShared>
     </File>
-  </Group>
-
-  <Group>
-    <GroupName>Drivers\HAL</GroupName>
-    <tvExp>0</tvExp>
-    <tvExpOptDlg>0</tvExpOptDlg>
-    <cbSel>0</cbSel>
-    <RteFlg>0</RteFlg>
     <File>
-      <GroupNumber>3</GroupNumber>
+      <GroupNumber>2</GroupNumber>
       <FileNumber>13</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
       <bDave2>0</bDave2>
-      <PathWithFileName>..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal.c</PathWithFileName>
-      <FilenameWithoutPath>stm32f4xx_hal.c</FilenameWithoutPath>
+      <PathWithFileName>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.c</PathWithFileName>
+      <FilenameWithoutPath>stm32f4xx_hal_pwr_ex.c</FilenameWithoutPath>
       <RteFlg>0</RteFlg>
       <bShared>0</bShared>
     </File>
     <File>
-      <GroupNumber>3</GroupNumber>
+      <GroupNumber>2</GroupNumber>
       <FileNumber>14</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
       <bDave2>0</bDave2>
-      <PathWithFileName>..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_adc.c</PathWithFileName>
-      <FilenameWithoutPath>stm32f4xx_hal_adc.c</FilenameWithoutPath>
+      <PathWithFileName>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.c</PathWithFileName>
+      <FilenameWithoutPath>stm32f4xx_hal_cortex.c</FilenameWithoutPath>
       <RteFlg>0</RteFlg>
       <bShared>0</bShared>
     </File>
     <File>
-      <GroupNumber>3</GroupNumber>
+      <GroupNumber>2</GroupNumber>
       <FileNumber>15</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
       <bDave2>0</bDave2>
-      <PathWithFileName>..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_adc_ex.c</PathWithFileName>
-      <FilenameWithoutPath>stm32f4xx_hal_adc_ex.c</FilenameWithoutPath>
+      <PathWithFileName>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c</PathWithFileName>
+      <FilenameWithoutPath>stm32f4xx_hal.c</FilenameWithoutPath>
       <RteFlg>0</RteFlg>
       <bShared>0</bShared>
     </File>
     <File>
-      <GroupNumber>3</GroupNumber>
+      <GroupNumber>2</GroupNumber>
       <FileNumber>16</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
       <bDave2>0</bDave2>
-      <PathWithFileName>..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_can.c</PathWithFileName>
-      <FilenameWithoutPath>stm32f4xx_hal_can.c</FilenameWithoutPath>
+      <PathWithFileName>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c</PathWithFileName>
+      <FilenameWithoutPath>stm32f4xx_hal_exti.c</FilenameWithoutPath>
       <RteFlg>0</RteFlg>
       <bShared>0</bShared>
     </File>
     <File>
-      <GroupNumber>3</GroupNumber>
+      <GroupNumber>2</GroupNumber>
       <FileNumber>17</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
       <bDave2>0</bDave2>
-      <PathWithFileName>..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_cortex.c</PathWithFileName>
-      <FilenameWithoutPath>stm32f4xx_hal_cortex.c</FilenameWithoutPath>
+      <PathWithFileName>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c</PathWithFileName>
+      <FilenameWithoutPath>stm32f4xx_hal_can.c</FilenameWithoutPath>
       <RteFlg>0</RteFlg>
       <bShared>0</bShared>
     </File>
     <File>
-      <GroupNumber>3</GroupNumber>
+      <GroupNumber>2</GroupNumber>
       <FileNumber>18</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
       <bDave2>0</bDave2>
-      <PathWithFileName>..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_dma.c</PathWithFileName>
-      <FilenameWithoutPath>stm32f4xx_hal_dma.c</FilenameWithoutPath>
+      <PathWithFileName>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c</PathWithFileName>
+      <FilenameWithoutPath>stm32f4xx_hal_spi.c</FilenameWithoutPath>
       <RteFlg>0</RteFlg>
       <bShared>0</bShared>
     </File>
     <File>
-      <GroupNumber>3</GroupNumber>
+      <GroupNumber>2</GroupNumber>
       <FileNumber>19</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
       <bDave2>0</bDave2>
-      <PathWithFileName>..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_dma_ex.c</PathWithFileName>
-      <FilenameWithoutPath>stm32f4xx_hal_dma_ex.c</FilenameWithoutPath>
+      <PathWithFileName>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c</PathWithFileName>
+      <FilenameWithoutPath>stm32f4xx_hal_tim.c</FilenameWithoutPath>
       <RteFlg>0</RteFlg>
       <bShared>0</bShared>
     </File>
     <File>
-      <GroupNumber>3</GroupNumber>
+      <GroupNumber>2</GroupNumber>
       <FileNumber>20</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
       <bDave2>0</bDave2>
-      <PathWithFileName>..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_exti.c</PathWithFileName>
-      <FilenameWithoutPath>stm32f4xx_hal_exti.c</FilenameWithoutPath>
+      <PathWithFileName>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c</PathWithFileName>
+      <FilenameWithoutPath>stm32f4xx_hal_tim_ex.c</FilenameWithoutPath>
       <RteFlg>0</RteFlg>
       <bShared>0</bShared>
     </File>
     <File>
-      <GroupNumber>3</GroupNumber>
+      <GroupNumber>2</GroupNumber>
       <FileNumber>21</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
       <bDave2>0</bDave2>
-      <PathWithFileName>..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_flash.c</PathWithFileName>
-      <FilenameWithoutPath>stm32f4xx_hal_flash.c</FilenameWithoutPath>
+      <PathWithFileName>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c</PathWithFileName>
+      <FilenameWithoutPath>stm32f4xx_hal_uart.c</FilenameWithoutPath>
       <RteFlg>0</RteFlg>
       <bShared>0</bShared>
     </File>
+  </Group>
+
+  <Group>
+    <GroupName>Drivers/CMSIS</GroupName>
+    <tvExp>0</tvExp>
+    <tvExpOptDlg>0</tvExpOptDlg>
+    <cbSel>0</cbSel>
+    <RteFlg>0</RteFlg>
     <File>
       <GroupNumber>3</GroupNumber>
       <FileNumber>22</FileNumber>
@@ -516,128 +516,136 @@
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
       <bDave2>0</bDave2>
-      <PathWithFileName>..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_flash_ex.c</PathWithFileName>
-      <FilenameWithoutPath>stm32f4xx_hal_flash_ex.c</FilenameWithoutPath>
+      <PathWithFileName>../Src/system_stm32f4xx.c</PathWithFileName>
+      <FilenameWithoutPath>system_stm32f4xx.c</FilenameWithoutPath>
       <RteFlg>0</RteFlg>
       <bShared>0</bShared>
     </File>
+  </Group>
+
+  <Group>
+    <GroupName>Application/User</GroupName>
+    <tvExp>0</tvExp>
+    <tvExpOptDlg>0</tvExpOptDlg>
+    <cbSel>0</cbSel>
+    <RteFlg>0</RteFlg>
     <File>
-      <GroupNumber>3</GroupNumber>
+      <GroupNumber>4</GroupNumber>
       <FileNumber>23</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
       <bDave2>0</bDave2>
-      <PathWithFileName>..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_flash_ramfunc.c</PathWithFileName>
-      <FilenameWithoutPath>stm32f4xx_hal_flash_ramfunc.c</FilenameWithoutPath>
+      <PathWithFileName>../Src/main.c</PathWithFileName>
+      <FilenameWithoutPath>main.c</FilenameWithoutPath>
       <RteFlg>0</RteFlg>
       <bShared>0</bShared>
     </File>
     <File>
-      <GroupNumber>3</GroupNumber>
+      <GroupNumber>4</GroupNumber>
       <FileNumber>24</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
       <bDave2>0</bDave2>
-      <PathWithFileName>..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_gpio.c</PathWithFileName>
-      <FilenameWithoutPath>stm32f4xx_hal_gpio.c</FilenameWithoutPath>
+      <PathWithFileName>../Src/gpio.c</PathWithFileName>
+      <FilenameWithoutPath>gpio.c</FilenameWithoutPath>
       <RteFlg>0</RteFlg>
       <bShared>0</bShared>
     </File>
     <File>
-      <GroupNumber>3</GroupNumber>
+      <GroupNumber>4</GroupNumber>
       <FileNumber>25</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
       <bDave2>0</bDave2>
-      <PathWithFileName>..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_pwr.c</PathWithFileName>
-      <FilenameWithoutPath>stm32f4xx_hal_pwr.c</FilenameWithoutPath>
+      <PathWithFileName>../Src/adc.c</PathWithFileName>
+      <FilenameWithoutPath>adc.c</FilenameWithoutPath>
       <RteFlg>0</RteFlg>
       <bShared>0</bShared>
     </File>
     <File>
-      <GroupNumber>3</GroupNumber>
+      <GroupNumber>4</GroupNumber>
       <FileNumber>26</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
       <bDave2>0</bDave2>
-      <PathWithFileName>..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_pwr_ex.c</PathWithFileName>
-      <FilenameWithoutPath>stm32f4xx_hal_pwr_ex.c</FilenameWithoutPath>
+      <PathWithFileName>../Src/can.c</PathWithFileName>
+      <FilenameWithoutPath>can.c</FilenameWithoutPath>
       <RteFlg>0</RteFlg>
       <bShared>0</bShared>
     </File>
     <File>
-      <GroupNumber>3</GroupNumber>
+      <GroupNumber>4</GroupNumber>
       <FileNumber>27</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
       <bDave2>0</bDave2>
-      <PathWithFileName>..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_rcc.c</PathWithFileName>
-      <FilenameWithoutPath>stm32f4xx_hal_rcc.c</FilenameWithoutPath>
+      <PathWithFileName>../Src/dma.c</PathWithFileName>
+      <FilenameWithoutPath>dma.c</FilenameWithoutPath>
       <RteFlg>0</RteFlg>
       <bShared>0</bShared>
     </File>
     <File>
-      <GroupNumber>3</GroupNumber>
+      <GroupNumber>4</GroupNumber>
       <FileNumber>28</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
       <bDave2>0</bDave2>
-      <PathWithFileName>..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_rcc_ex.c</PathWithFileName>
-      <FilenameWithoutPath>stm32f4xx_hal_rcc_ex.c</FilenameWithoutPath>
+      <PathWithFileName>../Src/spi.c</PathWithFileName>
+      <FilenameWithoutPath>spi.c</FilenameWithoutPath>
       <RteFlg>0</RteFlg>
       <bShared>0</bShared>
     </File>
     <File>
-      <GroupNumber>3</GroupNumber>
+      <GroupNumber>4</GroupNumber>
       <FileNumber>29</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
       <bDave2>0</bDave2>
-      <PathWithFileName>..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_spi.c</PathWithFileName>
-      <FilenameWithoutPath>stm32f4xx_hal_spi.c</FilenameWithoutPath>
+      <PathWithFileName>../Src/tim.c</PathWithFileName>
+      <FilenameWithoutPath>tim.c</FilenameWithoutPath>
       <RteFlg>0</RteFlg>
       <bShared>0</bShared>
     </File>
     <File>
-      <GroupNumber>3</GroupNumber>
+      <GroupNumber>4</GroupNumber>
       <FileNumber>30</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
       <bDave2>0</bDave2>
-      <PathWithFileName>..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_tim.c</PathWithFileName>
-      <FilenameWithoutPath>stm32f4xx_hal_tim.c</FilenameWithoutPath>
+      <PathWithFileName>../Src/usart.c</PathWithFileName>
+      <FilenameWithoutPath>usart.c</FilenameWithoutPath>
       <RteFlg>0</RteFlg>
       <bShared>0</bShared>
     </File>
     <File>
-      <GroupNumber>3</GroupNumber>
+      <GroupNumber>4</GroupNumber>
       <FileNumber>31</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
       <bDave2>0</bDave2>
-      <PathWithFileName>..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_tim_ex.c</PathWithFileName>
-      <FilenameWithoutPath>stm32f4xx_hal_tim_ex.c</FilenameWithoutPath>
+      <PathWithFileName>../Src/stm32f4xx_it.c</PathWithFileName>
+      <FilenameWithoutPath>stm32f4xx_it.c</FilenameWithoutPath>
       <RteFlg>0</RteFlg>
       <bShared>0</bShared>
     </File>
     <File>
-      <GroupNumber>3</GroupNumber>
+      <GroupNumber>4</GroupNumber>
       <FileNumber>32</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
       <bDave2>0</bDave2>
-      <PathWithFileName>..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_uart.c</PathWithFileName>
-      <FilenameWithoutPath>stm32f4xx_hal_uart.c</FilenameWithoutPath>
+      <PathWithFileName>../Src/stm32f4xx_hal_msp.c</PathWithFileName>
+      <FilenameWithoutPath>stm32f4xx_hal_msp.c</FilenameWithoutPath>
       <RteFlg>0</RteFlg>
       <bShared>0</bShared>
     </File>
@@ -650,7 +658,7 @@
     <cbSel>0</cbSel>
     <RteFlg>0</RteFlg>
     <File>
-      <GroupNumber>4</GroupNumber>
+      <GroupNumber>5</GroupNumber>
       <FileNumber>33</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
@@ -665,12 +673,12 @@
 
   <Group>
     <GroupName>BoardA</GroupName>
-    <tvExp>1</tvExp>
+    <tvExp>0</tvExp>
     <tvExpOptDlg>0</tvExpOptDlg>
     <cbSel>0</cbSel>
     <RteFlg>0</RteFlg>
     <File>
-      <GroupNumber>5</GroupNumber>
+      <GroupNumber>6</GroupNumber>
       <FileNumber>34</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
@@ -685,12 +693,12 @@
 
   <Group>
     <GroupName>Devices</GroupName>
-    <tvExp>1</tvExp>
+    <tvExp>0</tvExp>
     <tvExpOptDlg>0</tvExpOptDlg>
     <cbSel>0</cbSel>
     <RteFlg>0</RteFlg>
     <File>
-      <GroupNumber>6</GroupNumber>
+      <GroupNumber>7</GroupNumber>
       <FileNumber>35</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
@@ -702,7 +710,7 @@
       <bShared>0</bShared>
     </File>
     <File>
-      <GroupNumber>6</GroupNumber>
+      <GroupNumber>7</GroupNumber>
       <FileNumber>36</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
@@ -714,7 +722,7 @@
       <bShared>0</bShared>
     </File>
     <File>
-      <GroupNumber>6</GroupNumber>
+      <GroupNumber>7</GroupNumber>
       <FileNumber>37</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
@@ -726,7 +734,7 @@
       <bShared>0</bShared>
     </File>
     <File>
-      <GroupNumber>6</GroupNumber>
+      <GroupNumber>7</GroupNumber>
       <FileNumber>38</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
@@ -738,7 +746,7 @@
       <bShared>0</bShared>
     </File>
     <File>
-      <GroupNumber>6</GroupNumber>
+      <GroupNumber>7</GroupNumber>
       <FileNumber>39</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
@@ -750,7 +758,7 @@
       <bShared>0</bShared>
     </File>
     <File>
-      <GroupNumber>6</GroupNumber>
+      <GroupNumber>7</GroupNumber>
       <FileNumber>40</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
@@ -765,12 +773,12 @@
 
   <Group>
     <GroupName>Traitement</GroupName>
-    <tvExp>1</tvExp>
+    <tvExp>0</tvExp>
     <tvExpOptDlg>0</tvExpOptDlg>
     <cbSel>0</cbSel>
     <RteFlg>0</RteFlg>
     <File>
-      <GroupNumber>7</GroupNumber>
+      <GroupNumber>8</GroupNumber>
       <FileNumber>41</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
diff --git a/MDK-ARM/RobotMaster_allRobots.uvprojx b/MDK-ARM/RobotMaster_allRobots.uvprojx
index 2be0c052787c40e3c03bcaedbee1c0de22a693f5..2b605ead76180557eca91bc5e673f1876029ed8b 100644
--- a/MDK-ARM/RobotMaster_allRobots.uvprojx
+++ b/MDK-ARM/RobotMaster_allRobots.uvprojx
@@ -110,11 +110,11 @@
         </CommonProperty>
         <DllOption>
           <SimDllName>SARMCM3.DLL</SimDllName>
-          <SimDllArguments> -REMAP -MPU</SimDllArguments>
+          <SimDllArguments>-REMAP -MPU</SimDllArguments>
           <SimDlgDll>DCM.DLL</SimDlgDll>
           <SimDlgDllArguments>-pCM4</SimDlgDllArguments>
           <TargetDllName>SARMCM3.DLL</TargetDllName>
-          <TargetDllArguments> -MPU</TargetDllArguments>
+          <TargetDllArguments>-MPU</TargetDllArguments>
           <TargetDlgDll>TCM.DLL</TargetDlgDll>
           <TargetDlgDllArguments>-pCM4</TargetDlgDllArguments>
         </DllOption>
@@ -339,7 +339,7 @@
               <MiscControls></MiscControls>
               <Define>USE_HAL_DRIVER,STM32F427xx,USE_HAL_DRIVER,STM32F427xx</Define>
               <Undefine></Undefine>
-              <IncludePath>../Inc;                ../Drivers/STM32F4xx_HAL_Driver/Inc;                ../Drivers/CMSIS/Device/ST/STM32F4xx/Include;                ../Drivers/CMSIS/Include</IncludePath>
+              <IncludePath>../Inc;                 ../Drivers/STM32F4xx_HAL_Driver/Inc;                 ../Drivers/CMSIS/Device/ST/STM32F4xx/Include;                 ../Drivers/CMSIS/Include;../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy</IncludePath>
             </VariousControls>
           </Cads>
           <Aads>
@@ -381,246 +381,182 @@
       </TargetOption>
       <Groups>
         <Group>
-          <GroupName>User</GroupName>
-          <GroupOption>
-            <CommonProperty>
-              <UseCPPCompiler>0</UseCPPCompiler>
-              <RVCTCodeConst>0</RVCTCodeConst>
-              <RVCTZI>0</RVCTZI>
-              <RVCTOtherData>0</RVCTOtherData>
-              <ModuleSelection>0</ModuleSelection>
-              <IncludeInBuild>1</IncludeInBuild>
-              <AlwaysBuild>2</AlwaysBuild>
-              <GenerateAssemblyFile>2</GenerateAssemblyFile>
-              <AssembleAssemblyFile>2</AssembleAssemblyFile>
-              <PublicsOnly>2</PublicsOnly>
-              <StopOnExitCode>11</StopOnExitCode>
-              <CustomArgument></CustomArgument>
-              <IncludeLibraryModules></IncludeLibraryModules>
-              <ComprImg>0</ComprImg>
-            </CommonProperty>
-            <GroupArmAds>
-              <Cads>
-                <interw>2</interw>
-                <Optim>2</Optim>
-                <oTime>1</oTime>
-                <SplitLS>2</SplitLS>
-                <OneElfS>2</OneElfS>
-                <Strict>2</Strict>
-                <EnumInt>2</EnumInt>
-                <PlainCh>2</PlainCh>
-                <Ropi>2</Ropi>
-                <Rwpi>2</Rwpi>
-                <wLevel>0</wLevel>
-                <uThumb>2</uThumb>
-                <uSurpInc>2</uSurpInc>
-                <uC99>2</uC99>
-                <uGnu>2</uGnu>
-                <useXO>2</useXO>
-                <v6Lang>0</v6Lang>
-                <v6LangP>0</v6LangP>
-                <vShortEn>2</vShortEn>
-                <vShortWch>2</vShortWch>
-                <v6Lto>2</v6Lto>
-                <v6WtE>2</v6WtE>
-                <v6Rtti>2</v6Rtti>
-                <VariousControls>
-                  <MiscControls></MiscControls>
-                  <Define></Define>
-                  <Undefine></Undefine>
-                  <IncludePath></IncludePath>
-                </VariousControls>
-              </Cads>
-              <Aads>
-                <interw>2</interw>
-                <Ropi>2</Ropi>
-                <Rwpi>2</Rwpi>
-                <thumb>2</thumb>
-                <SplitLS>2</SplitLS>
-                <SwStkChk>2</SwStkChk>
-                <NoWarn>2</NoWarn>
-                <uSurpInc>2</uSurpInc>
-                <useXO>2</useXO>
-                <ClangAsOpt>0</ClangAsOpt>
-                <VariousControls>
-                  <MiscControls></MiscControls>
-                  <Define></Define>
-                  <Undefine></Undefine>
-                  <IncludePath></IncludePath>
-                </VariousControls>
-              </Aads>
-            </GroupArmAds>
-          </GroupOption>
+          <GroupName>Startup</GroupName>
           <Files>
             <File>
-              <FileName>adc.c</FileName>
-              <FileType>1</FileType>
-              <FilePath>..\Src\adc.c</FilePath>
+              <FileName>startup_stm32f427xx.s</FileName>
+              <FileType>2</FileType>
+              <FilePath>.\startup_stm32f427xx.s</FilePath>
             </File>
+          </Files>
+        </Group>
+        <Group>
+          <GroupName>Drivers/STM32F4xx_HAL_Driver</GroupName>
+          <Files>
             <File>
-              <FileName>can.c</FileName>
+              <FileName>stm32f4xx_hal_adc.c</FileName>
               <FileType>1</FileType>
-              <FilePath>..\Src\can.c</FilePath>
+              <FilePath>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.c</FilePath>
             </File>
             <File>
-              <FileName>dma.c</FileName>
+              <FileName>stm32f4xx_hal_adc_ex.c</FileName>
               <FileType>1</FileType>
-              <FilePath>..\Src\dma.c</FilePath>
+              <FilePath>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc_ex.c</FilePath>
             </File>
             <File>
-              <FileName>gpio.c</FileName>
+              <FileName>stm32f4xx_hal_rcc.c</FileName>
               <FileType>1</FileType>
-              <FilePath>..\Src\gpio.c</FilePath>
+              <FilePath>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.c</FilePath>
             </File>
             <File>
-              <FileName>main.c</FileName>
+              <FileName>stm32f4xx_hal_rcc_ex.c</FileName>
               <FileType>1</FileType>
-              <FilePath>..\Src\main.c</FilePath>
+              <FilePath>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.c</FilePath>
             </File>
             <File>
-              <FileName>spi.c</FileName>
+              <FileName>stm32f4xx_hal_flash.c</FileName>
               <FileType>1</FileType>
-              <FilePath>..\Src\spi.c</FilePath>
+              <FilePath>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c</FilePath>
             </File>
             <File>
-              <FileName>tim.c</FileName>
+              <FileName>stm32f4xx_hal_flash_ex.c</FileName>
               <FileType>1</FileType>
-              <FilePath>..\Src\tim.c</FilePath>
+              <FilePath>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c</FilePath>
             </File>
             <File>
-              <FileName>usart.c</FileName>
+              <FileName>stm32f4xx_hal_flash_ramfunc.c</FileName>
               <FileType>1</FileType>
-              <FilePath>..\Src\usart.c</FilePath>
+              <FilePath>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ramfunc.c</FilePath>
             </File>
             <File>
-              <FileName>stm32f4xx_hal_msp.c</FileName>
+              <FileName>stm32f4xx_hal_gpio.c</FileName>
               <FileType>1</FileType>
-              <FilePath>..\Src\stm32f4xx_hal_msp.c</FilePath>
+              <FilePath>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c</FilePath>
             </File>
             <File>
-              <FileName>stm32f4xx_it.c</FileName>
+              <FileName>stm32f4xx_hal_dma_ex.c</FileName>
               <FileType>1</FileType>
-              <FilePath>..\Src\stm32f4xx_it.c</FilePath>
+              <FilePath>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.c</FilePath>
             </File>
             <File>
-              <FileName>system_stm32f4xx.c</FileName>
+              <FileName>stm32f4xx_hal_dma.c</FileName>
               <FileType>1</FileType>
-              <FilePath>..\Src\system_stm32f4xx.c</FilePath>
+              <FilePath>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c</FilePath>
             </File>
-          </Files>
-        </Group>
-        <Group>
-          <GroupName>Startup</GroupName>
-          <Files>
             <File>
-              <FileName>startup_stm32f427xx.s</FileName>
-              <FileType>2</FileType>
-              <FilePath>.\startup_stm32f427xx.s</FilePath>
+              <FileName>stm32f4xx_hal_pwr.c</FileName>
+              <FileType>1</FileType>
+              <FilePath>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.c</FilePath>
             </File>
-          </Files>
-        </Group>
-        <Group>
-          <GroupName>Drivers\HAL</GroupName>
-          <Files>
             <File>
-              <FileName>stm32f4xx_hal.c</FileName>
+              <FileName>stm32f4xx_hal_pwr_ex.c</FileName>
               <FileType>1</FileType>
-              <FilePath>..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal.c</FilePath>
+              <FilePath>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.c</FilePath>
             </File>
             <File>
-              <FileName>stm32f4xx_hal_adc.c</FileName>
+              <FileName>stm32f4xx_hal_cortex.c</FileName>
               <FileType>1</FileType>
-              <FilePath>..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_adc.c</FilePath>
+              <FilePath>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.c</FilePath>
             </File>
             <File>
-              <FileName>stm32f4xx_hal_adc_ex.c</FileName>
+              <FileName>stm32f4xx_hal.c</FileName>
               <FileType>1</FileType>
-              <FilePath>..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_adc_ex.c</FilePath>
+              <FilePath>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c</FilePath>
             </File>
             <File>
-              <FileName>stm32f4xx_hal_can.c</FileName>
+              <FileName>stm32f4xx_hal_exti.c</FileName>
               <FileType>1</FileType>
-              <FilePath>..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_can.c</FilePath>
+              <FilePath>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c</FilePath>
             </File>
             <File>
-              <FileName>stm32f4xx_hal_cortex.c</FileName>
+              <FileName>stm32f4xx_hal_can.c</FileName>
               <FileType>1</FileType>
-              <FilePath>..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_cortex.c</FilePath>
+              <FilePath>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c</FilePath>
             </File>
             <File>
-              <FileName>stm32f4xx_hal_dma.c</FileName>
+              <FileName>stm32f4xx_hal_spi.c</FileName>
               <FileType>1</FileType>
-              <FilePath>..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_dma.c</FilePath>
+              <FilePath>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c</FilePath>
             </File>
             <File>
-              <FileName>stm32f4xx_hal_dma_ex.c</FileName>
+              <FileName>stm32f4xx_hal_tim.c</FileName>
               <FileType>1</FileType>
-              <FilePath>..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_dma_ex.c</FilePath>
+              <FilePath>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c</FilePath>
             </File>
             <File>
-              <FileName>stm32f4xx_hal_exti.c</FileName>
+              <FileName>stm32f4xx_hal_tim_ex.c</FileName>
               <FileType>1</FileType>
-              <FilePath>..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_exti.c</FilePath>
+              <FilePath>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c</FilePath>
             </File>
             <File>
-              <FileName>stm32f4xx_hal_flash.c</FileName>
+              <FileName>stm32f4xx_hal_uart.c</FileName>
               <FileType>1</FileType>
-              <FilePath>..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_flash.c</FilePath>
+              <FilePath>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c</FilePath>
             </File>
+          </Files>
+        </Group>
+        <Group>
+          <GroupName>Drivers/CMSIS</GroupName>
+          <Files>
             <File>
-              <FileName>stm32f4xx_hal_flash_ex.c</FileName>
+              <FileName>system_stm32f4xx.c</FileName>
               <FileType>1</FileType>
-              <FilePath>..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_flash_ex.c</FilePath>
+              <FilePath>../Src/system_stm32f4xx.c</FilePath>
             </File>
+          </Files>
+        </Group>
+        <Group>
+          <GroupName>Application/User</GroupName>
+          <Files>
             <File>
-              <FileName>stm32f4xx_hal_flash_ramfunc.c</FileName>
+              <FileName>main.c</FileName>
               <FileType>1</FileType>
-              <FilePath>..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_flash_ramfunc.c</FilePath>
+              <FilePath>../Src/main.c</FilePath>
             </File>
             <File>
-              <FileName>stm32f4xx_hal_gpio.c</FileName>
+              <FileName>gpio.c</FileName>
               <FileType>1</FileType>
-              <FilePath>..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_gpio.c</FilePath>
+              <FilePath>../Src/gpio.c</FilePath>
             </File>
             <File>
-              <FileName>stm32f4xx_hal_pwr.c</FileName>
+              <FileName>adc.c</FileName>
               <FileType>1</FileType>
-              <FilePath>..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_pwr.c</FilePath>
+              <FilePath>../Src/adc.c</FilePath>
             </File>
             <File>
-              <FileName>stm32f4xx_hal_pwr_ex.c</FileName>
+              <FileName>can.c</FileName>
               <FileType>1</FileType>
-              <FilePath>..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_pwr_ex.c</FilePath>
+              <FilePath>../Src/can.c</FilePath>
             </File>
             <File>
-              <FileName>stm32f4xx_hal_rcc.c</FileName>
+              <FileName>dma.c</FileName>
               <FileType>1</FileType>
-              <FilePath>..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_rcc.c</FilePath>
+              <FilePath>../Src/dma.c</FilePath>
             </File>
             <File>
-              <FileName>stm32f4xx_hal_rcc_ex.c</FileName>
+              <FileName>spi.c</FileName>
               <FileType>1</FileType>
-              <FilePath>..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_rcc_ex.c</FilePath>
+              <FilePath>../Src/spi.c</FilePath>
             </File>
             <File>
-              <FileName>stm32f4xx_hal_spi.c</FileName>
+              <FileName>tim.c</FileName>
               <FileType>1</FileType>
-              <FilePath>..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_spi.c</FilePath>
+              <FilePath>../Src/tim.c</FilePath>
             </File>
             <File>
-              <FileName>stm32f4xx_hal_tim.c</FileName>
+              <FileName>usart.c</FileName>
               <FileType>1</FileType>
-              <FilePath>..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_tim.c</FilePath>
+              <FilePath>../Src/usart.c</FilePath>
             </File>
             <File>
-              <FileName>stm32f4xx_hal_tim_ex.c</FileName>
+              <FileName>stm32f4xx_it.c</FileName>
               <FileType>1</FileType>
-              <FilePath>..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_tim_ex.c</FilePath>
+              <FilePath>../Src/stm32f4xx_it.c</FilePath>
             </File>
             <File>
-              <FileName>stm32f4xx_hal_uart.c</FileName>
+              <FileName>stm32f4xx_hal_msp.c</FileName>
               <FileType>1</FileType>
-              <FilePath>..\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_uart.c</FilePath>
+              <FilePath>../Src/stm32f4xx_hal_msp.c</FilePath>
             </File>
           </Files>
         </Group>
diff --git a/MDK-ARM/bin/ArInp.Scr b/MDK-ARM/bin/ArInp.Scr
index 2f468247efba4c7a9cd65b795de887e1caaee617..883633e6baf920e7cbca3d24ef07a9372d08acb4 100644
--- a/MDK-ARM/bin/ArInp.Scr
+++ b/MDK-ARM/bin/ArInp.Scr
@@ -1,36 +1,36 @@
 --create .\bin\RobotMaster_allRobots.lib
-.\bin\adc.o
-.\bin\can.o
-.\bin\dma.o
-.\bin\gpio.o
-.\bin\main.o
-.\bin\spi.o
-.\bin\tim.o
-.\bin\usart.o
-.\bin\stm32f4xx_hal_msp.o
-.\bin\stm32f4xx_it.o
-.\bin\system_stm32f4xx.o
 .\bin\startup_stm32f427xx.o
-.\bin\stm32f4xx_hal.o
 .\bin\stm32f4xx_hal_adc.o
 .\bin\stm32f4xx_hal_adc_ex.o
-.\bin\stm32f4xx_hal_can.o
-.\bin\stm32f4xx_hal_cortex.o
-.\bin\stm32f4xx_hal_dma.o
-.\bin\stm32f4xx_hal_dma_ex.o
-.\bin\stm32f4xx_hal_exti.o
+.\bin\stm32f4xx_hal_rcc.o
+.\bin\stm32f4xx_hal_rcc_ex.o
 .\bin\stm32f4xx_hal_flash.o
 .\bin\stm32f4xx_hal_flash_ex.o
 .\bin\stm32f4xx_hal_flash_ramfunc.o
 .\bin\stm32f4xx_hal_gpio.o
+.\bin\stm32f4xx_hal_dma_ex.o
+.\bin\stm32f4xx_hal_dma.o
 .\bin\stm32f4xx_hal_pwr.o
 .\bin\stm32f4xx_hal_pwr_ex.o
-.\bin\stm32f4xx_hal_rcc.o
-.\bin\stm32f4xx_hal_rcc_ex.o
+.\bin\stm32f4xx_hal_cortex.o
+.\bin\stm32f4xx_hal.o
+.\bin\stm32f4xx_hal_exti.o
+.\bin\stm32f4xx_hal_can.o
 .\bin\stm32f4xx_hal_spi.o
 .\bin\stm32f4xx_hal_tim.o
 .\bin\stm32f4xx_hal_tim_ex.o
 .\bin\stm32f4xx_hal_uart.o
+.\bin\system_stm32f4xx.o
+.\bin\main.o
+.\bin\gpio.o
+.\bin\adc.o
+.\bin\can.o
+.\bin\dma.o
+.\bin\spi.o
+.\bin\tim.o
+.\bin\usart.o
+.\bin\stm32f4xx_it.o
+.\bin\stm32f4xx_hal_msp.o
 .\bin\pid.o
 .\bin\boarda_handle.o
 .\bin\oled.o
diff --git a/MDK-ARM/bin/RobotMaster_allRobots.lib b/MDK-ARM/bin/RobotMaster_allRobots.lib
index d3d7c903589c03c3f82c3b4e1797c1af067818d0..b6d7e7abf540f456e1d694ce6f5fe0aaca1c31f1 100644
Binary files a/MDK-ARM/bin/RobotMaster_allRobots.lib and b/MDK-ARM/bin/RobotMaster_allRobots.lib differ
diff --git a/MDK-ARM/bin/RobotMaster_allRobots.sct b/MDK-ARM/bin/RobotMaster_allRobots.sct
deleted file mode 100644
index 5394321c8bbeb5ee149c226acdc46e55c8d82c11..0000000000000000000000000000000000000000
--- a/MDK-ARM/bin/RobotMaster_allRobots.sct
+++ /dev/null
@@ -1,16 +0,0 @@
-; *************************************************************
-; *** Scatter-Loading Description File generated by uVision ***
-; *************************************************************
-
-LR_IROM1 0x08000000 0x00200000  {    ; load region size_region
-  ER_IROM1 0x08000000 0x00200000  {  ; load address = execution address
-   *.o (RESET, +First)
-   *(InRoot$$Sections)
-   .ANY (+RO)
-   .ANY (+XO)
-  }
-  RW_IRAM1 0x20000000 0x00030000  {  ; RW data
-   .ANY (+RW +ZI)
-  }
-}
-
diff --git a/RobotMaster_allRobots.ioc b/RobotMaster_allRobots.ioc
index fddf82c1ef491d52bc0c4f017f42515887d1859f..8ab2d6c26502298fe0c8e576ea8dc493b419c3b8 100644
--- a/RobotMaster_allRobots.ioc
+++ b/RobotMaster_allRobots.ioc
@@ -1,360 +1,360 @@
 #MicroXplorer Configuration settings - do not modify
-Mcu.Family=STM32F4
-Dma.USART6_TX.3.MemInc=DMA_MINC_ENABLE
-ProjectManager.MainLocation=Src
-RCC.CortexFreq_Value=168000000
-Dma.USART6_TX.3.PeriphInc=DMA_PINC_DISABLE
-PG6.Signal=GPIO_Output
-PG9.GPIOParameters=GPIO_Label
-ProjectManager.KeepUserCode=true
-PE11.GPIOParameters=GPIO_Label
-Mcu.UserName=STM32F427IIHx
-SPI1.VirtualType=VM_MASTER
+ADC1.Channel-0\#ChannelRegularConversion=ADC_CHANNEL_6
+ADC1.IPParameters=Rank-0\#ChannelRegularConversion,master,Channel-0\#ChannelRegularConversion,SamplingTime-0\#ChannelRegularConversion,NbrOfConversionFlag
+ADC1.NbrOfConversionFlag=1
+ADC1.Rank-0\#ChannelRegularConversion=1
+ADC1.SamplingTime-0\#ChannelRegularConversion=ADC_SAMPLETIME_3CYCLES
+ADC1.master=1
+CAN1.ABOM=ENABLE
+CAN1.BS1=CAN_BS1_10TQ
+CAN1.BS2=CAN_BS2_4TQ
+CAN1.CalculateBaudRate=933333
+CAN1.CalculateTimeBit=1071.42
+CAN1.CalculateTimeQuantum=71.42857142857143
+CAN1.IPParameters=CalculateTimeQuantum,Prescaler,BS1,BS2,ABOM,CalculateTimeBit,CalculateBaudRate
+CAN1.Prescaler=3
+Dma.Request0=USART1_RX
+Dma.Request1=USART1_TX
+Dma.Request2=USART6_RX
+Dma.Request3=USART6_TX
+Dma.RequestsNb=4
+Dma.USART1_RX.0.Direction=DMA_PERIPH_TO_MEMORY
+Dma.USART1_RX.0.FIFOMode=DMA_FIFOMODE_DISABLE
+Dma.USART1_RX.0.Instance=DMA2_Stream2
+Dma.USART1_RX.0.MemDataAlignment=DMA_MDATAALIGN_BYTE
+Dma.USART1_RX.0.MemInc=DMA_MINC_ENABLE
+Dma.USART1_RX.0.Mode=DMA_CIRCULAR
+Dma.USART1_RX.0.PeriphDataAlignment=DMA_PDATAALIGN_BYTE
+Dma.USART1_RX.0.PeriphInc=DMA_PINC_DISABLE
+Dma.USART1_RX.0.Priority=DMA_PRIORITY_LOW
+Dma.USART1_RX.0.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority,FIFOMode
+Dma.USART1_TX.1.Direction=DMA_MEMORY_TO_PERIPH
+Dma.USART1_TX.1.FIFOMode=DMA_FIFOMODE_DISABLE
+Dma.USART1_TX.1.Instance=DMA2_Stream7
+Dma.USART1_TX.1.MemDataAlignment=DMA_MDATAALIGN_BYTE
 Dma.USART1_TX.1.MemInc=DMA_MINC_ENABLE
-UART8.IPParameters=VirtualMode
-PG2.Signal=GPIO_Output
-TIM1.IPParameters=Channel-PWM Generation1 CH1,Channel-PWM Generation2 CH2,Prescaler,Period,Pulse-PWM Generation1 CH1,Pulse-PWM Generation2 CH2
-PE11.GPIO_Label=BOARD_LED_RED
-USART1.BaudRate=100000
-PG8.Signal=GPIO_Output
-PG4.Signal=GPIO_Output
+Dma.USART1_TX.1.Mode=DMA_NORMAL
+Dma.USART1_TX.1.PeriphDataAlignment=DMA_PDATAALIGN_BYTE
+Dma.USART1_TX.1.PeriphInc=DMA_PINC_DISABLE
+Dma.USART1_TX.1.Priority=DMA_PRIORITY_LOW
+Dma.USART1_TX.1.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority,FIFOMode
 Dma.USART6_RX.2.Direction=DMA_PERIPH_TO_MEMORY
-PG8.Locked=true
-PG6.Locked=true
-PG4.Locked=true
-RCC.PLLCLKFreq_Value=168000000
-PG2.Locked=true
-PG6.GPIO_Label=BOARD_LED_C
-RCC.PLLQCLKFreq_Value=84000000
-PG3.GPIOParameters=GPIO_Label
-ProjectManager.functionlistsort=1-MX_GPIO_Init-GPIO-false-HAL-true,2-MX_DMA_Init-DMA-false-HAL-true,3-SystemClock_Config-RCC-false-HAL-false,4-MX_ADC1_Init-ADC1-false-HAL-true,5-MX_SPI1_Init-SPI1-false-HAL-true,6-MX_USART1_UART_Init-USART1-false-HAL-true,7-MX_USART6_UART_Init-USART6-false-HAL-true,8-MX_CAN1_Init-CAN1-false-HAL-true,9-MX_UART8_Init-UART8-false-HAL-true,10-MX_TIM1_Init-TIM1-false-HAL-true
-PD0.GPIO_Label=CAN1_RX
-RCC.RTCFreq_Value=32000
-PA6.GPIO_Label=OLED_Analog
-PB6.GPIO_Label=ReceiverRC_TX
-PD0.Locked=true
-TIM1.Pulse-PWM\ Generation1\ CH1=1000
-PH5.GPIO_Label=BOARD_POWER4_CTRL
-PG14.GPIOParameters=GPIO_Label
-SH.S_TIM1_CH1.ConfNb=1
-USART1.IPParameters=VirtualMode,BaudRate,Parity,Mode
-PG5.GPIO_Label=BOARD_LED_D
-PG2.GPIOParameters=GPIO_Label
+Dma.USART6_RX.2.FIFOMode=DMA_FIFOMODE_DISABLE
+Dma.USART6_RX.2.Instance=DMA2_Stream1
 Dma.USART6_RX.2.MemDataAlignment=DMA_MDATAALIGN_BYTE
-PinOutPanel.RotationAngle=0
-PH5.GPIOParameters=GPIO_Label
-RCC.SYSCLKSource=RCC_SYSCLKSOURCE_PLLCLK
-ProjectManager.StackSize=0x400
+Dma.USART6_RX.2.MemInc=DMA_MINC_ENABLE
+Dma.USART6_RX.2.Mode=DMA_CIRCULAR
+Dma.USART6_RX.2.PeriphDataAlignment=DMA_PDATAALIGN_BYTE
+Dma.USART6_RX.2.PeriphInc=DMA_PINC_DISABLE
+Dma.USART6_RX.2.Priority=DMA_PRIORITY_LOW
+Dma.USART6_RX.2.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority,FIFOMode
+Dma.USART6_TX.3.Direction=DMA_MEMORY_TO_PERIPH
+Dma.USART6_TX.3.FIFOMode=DMA_FIFOMODE_DISABLE
+Dma.USART6_TX.3.Instance=DMA2_Stream6
+Dma.USART6_TX.3.MemDataAlignment=DMA_MDATAALIGN_BYTE
+Dma.USART6_TX.3.MemInc=DMA_MINC_ENABLE
+Dma.USART6_TX.3.Mode=DMA_NORMAL
 Dma.USART6_TX.3.PeriphDataAlignment=DMA_PDATAALIGN_BYTE
-RCC.SAI_BClocksFreq_Value=24500000
-Mcu.IP4=RCC
-RCC.FCLKCortexFreq_Value=168000000
-Mcu.IP5=SPI1
-Mcu.IP2=DMA
-NVIC.SVCall_IRQn=true\:0\:0\:false\:false\:true\:false\:false
-Mcu.IP3=NVIC
+Dma.USART6_TX.3.PeriphInc=DMA_PINC_DISABLE
+Dma.USART6_TX.3.Priority=DMA_PRIORITY_LOW
+Dma.USART6_TX.3.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority,FIFOMode
+File.Version=6
+GPIO.groupedBy=Group By Peripherals
+KeepUserPlacement=false
+Mcu.Family=STM32F4
 Mcu.IP0=ADC1
 Mcu.IP1=CAN1
-PH4.GPIOParameters=GPIO_Label
-PH5.Signal=GPIO_Output
-TIM1.Prescaler=167
-Mcu.UserConstants=
-PH3.Locked=true
-Dma.USART6_TX.3.Priority=DMA_PRIORITY_LOW
-NVIC.CAN1_TX_IRQn=true\:0\:0\:false\:false\:true\:true\:true
-Mcu.ThirdPartyNb=0
-SPI1.Direction=SPI_DIRECTION_1LINE
-PH0/OSC_IN.Mode=HSE-External-Oscillator
-RCC.HCLKFreq_Value=168000000
+Mcu.IP10=USART6
+Mcu.IP2=DMA
+Mcu.IP3=NVIC
+Mcu.IP4=RCC
+Mcu.IP5=SPI1
+Mcu.IP6=SYS
+Mcu.IP7=TIM1
+Mcu.IP8=UART8
+Mcu.IP9=USART1
 Mcu.IPNb=11
-RCC.I2SClocksFreq_Value=192000000
-ProjectManager.PreviousToolchain=
-RCC.APB2TimFreq_Value=168000000
-PB6.Signal=USART1_TX
-RCC.VcooutputI2S=192000000
-PG8.GPIOParameters=GPIO_Label
-PB6.Mode=Asynchronous
-PH1/OSC_OUT.Signal=RCC_OSC_OUT
-SPI1.CalculateBaudRate=1.3125 MBits/s
-Dma.USART6_RX.2.Instance=DMA2_Stream1
-Mcu.Pin6=PB9
-PD0.Signal=CAN1_RX
-Mcu.Pin7=PB7
-Mcu.Pin8=PB6
-Mcu.Pin9=PD0
-RCC.VCOSAIOutputFreq_Value=98000000
-PE1.Signal=UART8_TX
-RCC.AHBFreq_Value=168000000
-Dma.USART1_RX.0.Priority=DMA_PRIORITY_LOW
+Mcu.Name=STM32F427I(G-I)Hx
+Mcu.Package=UFBGA176
 Mcu.Pin0=PE1
 Mcu.Pin1=PE0
-GPIO.groupedBy=Group By Peripherals
+Mcu.Pin10=PG9
+Mcu.Pin11=PD1
+Mcu.Pin12=PA9
+Mcu.Pin13=PH2
+Mcu.Pin14=PA8
+Mcu.Pin15=PH0/OSC_IN
+Mcu.Pin16=PH3
+Mcu.Pin17=PH1/OSC_OUT
+Mcu.Pin18=PH4
+Mcu.Pin19=PG8
 Mcu.Pin2=PG14
+Mcu.Pin20=PH5
+Mcu.Pin21=PG7
+Mcu.Pin22=PG6
+Mcu.Pin23=PG5
+Mcu.Pin24=PG4
+Mcu.Pin25=PG3
+Mcu.Pin26=PG2
+Mcu.Pin27=PG1
+Mcu.Pin28=PA6
+Mcu.Pin29=PE11
 Mcu.Pin3=PB3
+Mcu.Pin30=PA7
+Mcu.Pin31=PF14
+Mcu.Pin32=PB10
+Mcu.Pin33=VP_SYS_VS_Systick
 Mcu.Pin4=PA14
 Mcu.Pin5=PA13
-ADC1.Channel-0\#ChannelRegularConversion=ADC_CHANNEL_6
-ProjectManager.ProjectBuild=false
-RCC.HSE_VALUE=12000000
-NVIC.UsageFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false
+Mcu.Pin6=PB9
+Mcu.Pin7=PB7
+Mcu.Pin8=PB6
+Mcu.Pin9=PD0
+Mcu.PinsNb=34
+Mcu.ThirdPartyNb=0
+Mcu.UserConstants=
+Mcu.UserName=STM32F427IIHx
+MxCube.Version=6.1.1
+MxDb.Version=DB.6.0.10
+NVIC.BusFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false
+NVIC.CAN1_RX0_IRQn=true\:0\:0\:false\:false\:true\:true\:true
+NVIC.CAN1_TX_IRQn=true\:0\:0\:false\:false\:true\:true\:true
+NVIC.DMA2_Stream1_IRQn=true\:0\:0\:false\:false\:true\:false\:true
+NVIC.DMA2_Stream2_IRQn=true\:0\:0\:false\:false\:true\:false\:true
+NVIC.DMA2_Stream6_IRQn=true\:0\:0\:false\:false\:true\:false\:true
+NVIC.DMA2_Stream7_IRQn=true\:0\:0\:false\:false\:true\:false\:true
 NVIC.DebugMonitor_IRQn=true\:0\:0\:false\:false\:true\:false\:false
-PB3.Mode=Simplex_Bidirectional_Master
-Mcu.IP10=USART6
-PD1.GPIOParameters=GPIO_Label
+NVIC.ForceEnableDMAVector=true
+NVIC.HardFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false
+NVIC.MemoryManagement_IRQn=true\:0\:0\:false\:false\:true\:false\:false
+NVIC.NonMaskableInt_IRQn=true\:0\:0\:false\:false\:true\:false\:false
+NVIC.PendSV_IRQn=true\:0\:0\:false\:false\:true\:false\:false
+NVIC.PriorityGroup=NVIC_PRIORITYGROUP_4
+NVIC.SVCall_IRQn=true\:0\:0\:false\:false\:true\:false\:false
 NVIC.SysTick_IRQn=true\:0\:0\:false\:false\:true\:false\:true
-PD1.GPIO_Label=CAN1_TX
-PG14.Mode=Asynchronous
-PG1.GPIOParameters=GPIO_Label
-Dma.USART6_RX.2.Priority=DMA_PRIORITY_LOW
-ProjectManager.FirmwarePackage=STM32Cube FW_F4 V1.25.2
-MxDb.Version=DB.6.0.10
-PE0.GPIOParameters=GPIO_Label
-ProjectManager.BackupPrevious=false
-RCC.VCOInputFreq_Value=2000000
-TIM1.Channel-PWM\ Generation1\ CH1=TIM_CHANNEL_1
+NVIC.USART1_IRQn=true\:0\:0\:false\:false\:true\:true\:true
+NVIC.USART6_IRQn=true\:0\:0\:false\:false\:true\:true\:true
+NVIC.UsageFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false
+PA13.Mode=Serial_Wire
+PA13.Signal=SYS_JTMS-SWDIO
 PA14.Mode=Serial_Wire
-File.Version=6
-PG4.GPIO_Label=BOARD_LED_E
-PB3.GPIOParameters=GPIO_Label
-PH3.GPIOParameters=GPIO_Label
-PB7.Signal=USART1_RX
-PA8.Signal=S_TIM1_CH1
-PE1.Locked=true
-NVIC.PendSV_IRQn=true\:0\:0\:false\:false\:true\:false\:false
-SH.ADCx_IN6.ConfNb=1
-Dma.USART1_RX.0.MemInc=DMA_MINC_ENABLE
-PH1/OSC_OUT.Mode=HSE-External-Oscillator
-Dma.RequestsNb=4
-PB6.GPIOParameters=GPIO_Label
-ProjectManager.HalAssertFull=false
-ADC1.SamplingTime-0\#ChannelRegularConversion=ADC_SAMPLETIME_3CYCLES
-Dma.USART1_TX.1.PeriphDataAlignment=DMA_PDATAALIGN_BYTE
-ProjectManager.ProjectName=RobotMaster_allRobots
-PB7.GPIO_Label=ReceiverRC_RX
-RCC.MCO2PinFreq_Value=168000000
-CAN1.Prescaler=3
-PB9.Signal=GPIO_Output
-Mcu.Package=UFBGA176
+PA14.Signal=SYS_JTCK-SWCLK
+PA6.GPIOParameters=GPIO_Label
+PA6.GPIO_Label=OLED_Analog
+PA6.Locked=true
 PA6.Signal=ADCx_IN6
-NVIC.DMA2_Stream7_IRQn=true\:0\:0\:false\:false\:true\:false\:true
+PA7.GPIOParameters=GPIO_Label
+PA7.GPIO_Label=OLED_MOSI
 PA7.Locked=true
-PG5.GPIOParameters=GPIO_Label
-TIM1.Pulse-PWM\ Generation2\ CH2=1000
-USART6.VirtualMode=VM_ASYNC
-ProjectManager.ToolChainLocation=
-RCC.LSI_VALUE=32000
-VP_SYS_VS_Systick.Signal=SYS_VS_Systick
-Dma.USART1_RX.0.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority,FIFOMode
-PE0.GPIO_Label=DEBUG_RX
-PH3.GPIO_Label=BOARD_POWER2_CTRL
-PH2.Signal=GPIO_Output
-Dma.USART1_RX.0.FIFOMode=DMA_FIFOMODE_DISABLE
-RCC.APB2CLKDivider=RCC_HCLK_DIV2
-NVIC.DMA2_Stream2_IRQn=true\:0\:0\:false\:false\:true\:false\:true
-Dma.USART6_TX.3.MemDataAlignment=DMA_MDATAALIGN_BYTE
-Dma.Request2=USART6_RX
-PF14.Signal=GPIO_Output
-Dma.Request1=USART1_TX
-RCC.APB1TimFreq_Value=84000000
-Dma.Request3=USART6_TX
-NVIC.BusFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false
-Dma.USART1_RX.0.Mode=DMA_CIRCULAR
-Dma.USART1_TX.1.Priority=DMA_PRIORITY_LOW
-TIM1.Period=9999
+PA7.Mode=Simplex_Bidirectional_Master
+PA7.Signal=SPI1_MOSI
+PA8.Signal=S_TIM1_CH1
+PA9.Signal=S_TIM1_CH2
 PB10.GPIOParameters=GPIO_Label
-NVIC.USART1_IRQn=true\:0\:0\:false\:false\:true\:true\:true
-Dma.Request0=USART1_RX
-SPI1.BaudRatePrescaler=SPI_BAUDRATEPRESCALER_64
-CAN1.CalculateTimeBit=1071.42
-Dma.USART1_RX.0.Instance=DMA2_Stream2
-ProjectManager.CustomerFirmwarePackage=
-RCC.SAI_AClocksFreq_Value=24500000
-PB3.Locked=true
-PG2.GPIO_Label=BOARD_LED_G
-CAN1.CalculateTimeQuantum=71.42857142857143
-Dma.USART1_TX.1.Direction=DMA_MEMORY_TO_PERIPH
+PB10.GPIO_Label=OLED_RST
+PB10.Locked=true
+PB10.Signal=GPIO_Output
+PB3.GPIOParameters=GPIO_Label
 PB3.GPIO_Label=OLED_SCK
-PA6.GPIOParameters=GPIO_Label
-RCC.PLLSourceVirtual=RCC_PLLSOURCE_HSE
-Dma.USART1_TX.1.Instance=DMA2_Stream7
-ProjectManager.ProjectFileName=RobotMaster_allRobots.ioc
-PG7.Locked=true
-ADC1.Rank-0\#ChannelRegularConversion=1
-PG7.Signal=GPIO_Output
-PA7.Mode=Simplex_Bidirectional_Master
-Dma.USART1_RX.0.PeriphDataAlignment=DMA_PDATAALIGN_BYTE
+PB3.Locked=true
+PB3.Mode=Simplex_Bidirectional_Master
+PB3.Signal=SPI1_SCK
+PB6.GPIOParameters=GPIO_Label
+PB6.GPIO_Label=ReceiverRC_TX
+PB6.Mode=Asynchronous
+PB6.Signal=USART1_TX
+PB7.GPIOParameters=GPIO_Label
+PB7.GPIO_Label=ReceiverRC_RX
+PB7.Mode=Asynchronous
+PB7.Signal=USART1_RX
+PB9.GPIOParameters=GPIO_Label
 PB9.GPIO_Label=OLED_DC
-Mcu.PinsNb=34
-ProjectManager.NoMain=false
-SPI1.IPParameters=VirtualType,Mode,Direction,CalculateBaudRate,BaudRatePrescaler
-PG3.Signal=GPIO_Output
-SH.ADCx_IN6.0=ADC1_IN6,IN6
-ADC1.IPParameters=Rank-0\#ChannelRegularConversion,master,Channel-0\#ChannelRegularConversion,SamplingTime-0\#ChannelRegularConversion,NbrOfConversionFlag
-USART6.IPParameters=VirtualMode
+PB9.Locked=true
+PB9.Signal=GPIO_Output
+PD0.GPIOParameters=GPIO_Label
+PD0.GPIO_Label=CAN1_RX
+PD0.Locked=true
+PD0.Mode=CAN_Activate
+PD0.Signal=CAN1_RX
+PD1.GPIOParameters=GPIO_Label
+PD1.GPIO_Label=CAN1_TX
+PD1.Locked=true
+PD1.Mode=CAN_Activate
+PD1.Signal=CAN1_TX
+PE0.GPIOParameters=GPIO_Label
+PE0.GPIO_Label=DEBUG_RX
+PE0.Locked=true
+PE0.Mode=Asynchronous
+PE0.Signal=UART8_RX
+PE1.GPIOParameters=GPIO_Label
+PE1.GPIO_Label=DEBUG_TX
+PE1.Locked=true
+PE1.Mode=Asynchronous
+PE1.Signal=UART8_TX
+PE11.GPIOParameters=GPIO_Label
+PE11.GPIO_Label=BOARD_LED_RED
+PE11.Locked=true
+PE11.Signal=GPIO_Output
+PF14.GPIOParameters=GPIO_Label
+PF14.GPIO_Label=BOARD_LED_GREEN
+PF14.Locked=true
+PF14.Signal=GPIO_Output
+PG1.GPIOParameters=GPIO_Label
+PG1.GPIO_Label=BOARD_LED_H
+PG1.Locked=true
 PG1.Signal=GPIO_Output
+PG14.GPIOParameters=GPIO_Label
+PG14.GPIO_Label=RefereeSystem_Tx
+PG14.Mode=Asynchronous
+PG14.Signal=USART6_TX
+PG2.GPIOParameters=GPIO_Label
+PG2.GPIO_Label=BOARD_LED_G
+PG2.Locked=true
+PG2.Signal=GPIO_Output
+PG3.GPIOParameters=GPIO_Label
+PG3.GPIO_Label=BOARD_LED_F
+PG3.Locked=true
+PG3.Signal=GPIO_Output
+PG4.GPIOParameters=GPIO_Label
+PG4.GPIO_Label=BOARD_LED_E
+PG4.Locked=true
+PG4.Signal=GPIO_Output
+PG5.GPIOParameters=GPIO_Label
+PG5.GPIO_Label=BOARD_LED_D
 PG5.Locked=true
-Dma.USART1_TX.1.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority,FIFOMode
 PG5.Signal=GPIO_Output
-PG9.Signal=USART6_RX
-PG3.Locked=true
-PG1.Locked=true
-CAN1.IPParameters=CalculateTimeQuantum,Prescaler,BS1,BS2,ABOM,CalculateTimeBit,CalculateBaudRate
-PE1.Mode=Asynchronous
-CAN1.CalculateBaudRate=933333
+PG6.GPIOParameters=GPIO_Label
+PG6.GPIO_Label=BOARD_LED_C
+PG6.Locked=true
+PG6.Signal=GPIO_Output
+PG7.GPIOParameters=GPIO_Label
+PG7.GPIO_Label=BOARD_LED_B
+PG7.Locked=true
+PG7.Signal=GPIO_Output
+PG8.GPIOParameters=GPIO_Label
+PG8.GPIO_Label=BOARD_LED_A
+PG8.Locked=true
+PG8.Signal=GPIO_Output
+PG9.GPIOParameters=GPIO_Label
+PG9.GPIO_Label=RefereeSystem_Rx
 PG9.Mode=Asynchronous
-PD1.Signal=CAN1_TX
+PG9.Signal=USART6_RX
+PH0/OSC_IN.Mode=HSE-External-Oscillator
+PH0/OSC_IN.Signal=RCC_OSC_IN
+PH1/OSC_OUT.Mode=HSE-External-Oscillator
+PH1/OSC_OUT.Signal=RCC_OSC_OUT
+PH2.GPIOParameters=GPIO_Label
+PH2.GPIO_Label=BOARD_POWER1_CTRL
+PH2.Locked=true
+PH2.Signal=GPIO_Output
+PH3.GPIOParameters=GPIO_Label
+PH3.GPIO_Label=BOARD_POWER2_CTRL
+PH3.Locked=true
+PH3.Signal=GPIO_Output
+PH4.GPIOParameters=GPIO_Label
+PH4.GPIO_Label=BOARD_POWER3_CTRL
+PH4.Locked=true
+PH4.Signal=GPIO_Output
+PH5.GPIOParameters=GPIO_Label
+PH5.GPIO_Label=BOARD_POWER4_CTRL
+PH5.Locked=true
+PH5.Signal=GPIO_Output
+PinOutPanel.CurrentBGAView=Top
+PinOutPanel.RotationAngle=0
+ProjectManager.AskForMigrate=true
+ProjectManager.BackupPrevious=false
+ProjectManager.CompilerOptimize=6
+ProjectManager.ComputerToolchain=false
+ProjectManager.CoupleFile=true
+ProjectManager.CustomerFirmwarePackage=
 ProjectManager.DefaultFWLocation=true
-RCC.VCOSAIOutputFreq_ValueQ=24500000
-PF14.GPIO_Label=BOARD_LED_GREEN
-NVIC.DMA2_Stream1_IRQn=true\:0\:0\:false\:false\:true\:false\:true
 ProjectManager.DeletePrevious=true
+ProjectManager.DeviceId=STM32F427IIHx
+ProjectManager.FirmwarePackage=STM32Cube FW_F4 V1.25.2
+ProjectManager.FreePins=false
+ProjectManager.HalAssertFull=false
+ProjectManager.HeapSize=0x200
+ProjectManager.KeepUserCode=true
+ProjectManager.LastFirmware=true
+ProjectManager.LibraryCopy=1
+ProjectManager.MainLocation=Src
+ProjectManager.NoMain=false
+ProjectManager.PreviousToolchain=
+ProjectManager.ProjectBuild=false
+ProjectManager.ProjectFileName=RobotMaster_allRobots.ioc
+ProjectManager.ProjectName=RobotMaster_allRobots
+ProjectManager.RegisterCallBack=
+ProjectManager.StackSize=0x400
+ProjectManager.TargetToolchain=MDK-ARM V5.27
+ProjectManager.ToolChainLocation=
+ProjectManager.UnderRoot=false
+ProjectManager.functionlistsort=1-MX_GPIO_Init-GPIO-false-HAL-true,2-MX_DMA_Init-DMA-false-HAL-true,3-SystemClock_Config-RCC-false-HAL-false,4-MX_ADC1_Init-ADC1-false-HAL-true,5-MX_SPI1_Init-SPI1-false-HAL-true,6-MX_USART1_UART_Init-USART1-false-HAL-true,7-MX_USART6_UART_Init-USART6-false-HAL-true,8-MX_CAN1_Init-CAN1-false-HAL-true,9-MX_UART8_Init-UART8-false-HAL-true,10-MX_TIM1_Init-TIM1-false-HAL-true
+RCC.48MHZClocksFreq_Value=84000000
+RCC.AHBFreq_Value=168000000
 RCC.APB1CLKDivider=RCC_HCLK_DIV4
-UART8.VirtualMode=Asynchronous
-PB10.Locked=true
-Dma.USART6_TX.3.Mode=DMA_NORMAL
-PinOutPanel.CurrentBGAView=Top
+RCC.APB1Freq_Value=42000000
+RCC.APB1TimFreq_Value=84000000
+RCC.APB2CLKDivider=RCC_HCLK_DIV2
+RCC.APB2Freq_Value=84000000
+RCC.APB2TimFreq_Value=168000000
+RCC.CortexFreq_Value=168000000
+RCC.EthernetFreq_Value=168000000
+RCC.FCLKCortexFreq_Value=168000000
 RCC.FamilyName=M
-NVIC.USART6_IRQn=true\:0\:0\:false\:false\:true\:true\:true
-PB9.GPIOParameters=GPIO_Label
-PG8.GPIO_Label=BOARD_LED_A
-PA13.Signal=SYS_JTMS-SWDIO
-SH.S_TIM1_CH1.0=TIM1_CH1,PWM Generation1 CH1
-PH4.Signal=GPIO_Output
-CAN1.BS2=CAN_BS2_4TQ
-Dma.USART6_RX.2.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority,FIFOMode
-PH4.Locked=true
-CAN1.BS1=CAN_BS1_10TQ
-ProjectManager.TargetToolchain=MDK-ARM V5.27
-PB10.GPIO_Label=OLED_RST
-Dma.USART6_RX.2.MemInc=DMA_MINC_ENABLE
-PB7.GPIOParameters=GPIO_Label
-Dma.USART1_RX.0.Direction=DMA_PERIPH_TO_MEMORY
-PA9.Signal=S_TIM1_CH2
-USART1.Parity=PARITY_EVEN
-TIM1.Channel-PWM\ Generation2\ CH2=TIM_CHANNEL_2
-RCC.VcooutputI2SQ=192000000
-PB9.Locked=true
-Dma.USART6_RX.2.PeriphDataAlignment=DMA_PDATAALIGN_BYTE
-ProjectManager.RegisterCallBack=
-PE0.Locked=true
-Dma.USART1_TX.1.FIFOMode=DMA_FIFOMODE_DISABLE
-PH2.GPIOParameters=GPIO_Label
-NVIC.DMA2_Stream6_IRQn=true\:0\:0\:false\:false\:true\:false\:true
-PE11.Signal=GPIO_Output
+RCC.HCLKFreq_Value=168000000
+RCC.HSE_VALUE=12000000
+RCC.HSI_VALUE=16000000
+RCC.I2SClocksFreq_Value=192000000
+RCC.IPParameters=48MHZClocksFreq_Value,AHBFreq_Value,APB1CLKDivider,APB1Freq_Value,APB1TimFreq_Value,APB2CLKDivider,APB2Freq_Value,APB2TimFreq_Value,CortexFreq_Value,EthernetFreq_Value,FCLKCortexFreq_Value,FamilyName,HCLKFreq_Value,HSE_VALUE,HSI_VALUE,I2SClocksFreq_Value,LSE_VALUE,LSI_VALUE,MCO2PinFreq_Value,PLLCLKFreq_Value,PLLM,PLLN,PLLQCLKFreq_Value,PLLSourceVirtual,RTCFreq_Value,RTCHSEDivFreq_Value,SAI_AClocksFreq_Value,SAI_BClocksFreq_Value,SYSCLKFreq_VALUE,SYSCLKSource,VCOI2SOutputFreq_Value,VCOInputFreq_Value,VCOOutputFreq_Value,VCOSAIOutputFreq_Value,VCOSAIOutputFreq_ValueQ,VcooutputI2S,VcooutputI2SQ
 RCC.LSE_VALUE=32768
-Dma.USART1_RX.0.PeriphInc=DMA_PINC_DISABLE
-SH.S_TIM1_CH2.ConfNb=1
-CAN1.ABOM=ENABLE
-PB10.Signal=GPIO_Output
+RCC.LSI_VALUE=32000
+RCC.MCO2PinFreq_Value=168000000
+RCC.PLLCLKFreq_Value=168000000
+RCC.PLLM=6
+RCC.PLLN=168
+RCC.PLLQCLKFreq_Value=84000000
+RCC.PLLSourceVirtual=RCC_PLLSOURCE_HSE
+RCC.RTCFreq_Value=32000
+RCC.RTCHSEDivFreq_Value=6000000
+RCC.SAI_AClocksFreq_Value=24500000
+RCC.SAI_BClocksFreq_Value=24500000
+RCC.SYSCLKFreq_VALUE=168000000
+RCC.SYSCLKSource=RCC_SYSCLKSOURCE_PLLCLK
 RCC.VCOI2SOutputFreq_Value=384000000
-PG9.GPIO_Label=RefereeSystem_Rx
-PG6.GPIOParameters=GPIO_Label
-PG14.Signal=USART6_TX
-Dma.USART6_TX.3.Direction=DMA_MEMORY_TO_PERIPH
-Dma.USART1_TX.1.MemDataAlignment=DMA_MDATAALIGN_BYTE
-board=custom
+RCC.VCOInputFreq_Value=2000000
 RCC.VCOOutputFreq_Value=336000000
-PE1.GPIO_Label=DEBUG_TX
-PG1.GPIO_Label=BOARD_LED_H
-ProjectManager.LastFirmware=true
-PF14.GPIOParameters=GPIO_Label
-Dma.USART6_TX.3.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority,FIFOMode
-PD1.Mode=CAN_Activate
-PH4.GPIO_Label=BOARD_POWER3_CTRL
-Dma.USART6_RX.2.FIFOMode=DMA_FIFOMODE_DISABLE
-Dma.USART6_RX.2.Mode=DMA_CIRCULAR
-PH0/OSC_IN.Signal=RCC_OSC_IN
-RCC.APB2Freq_Value=84000000
-MxCube.Version=6.1.1
-USART1.Mode=MODE_TX_RX
-PG4.GPIOParameters=GPIO_Label
+RCC.VCOSAIOutputFreq_Value=98000000
+RCC.VCOSAIOutputFreq_ValueQ=24500000
+RCC.VcooutputI2S=192000000
+RCC.VcooutputI2SQ=192000000
+SH.ADCx_IN6.0=ADC1_IN6,IN6
+SH.ADCx_IN6.ConfNb=1
+SH.S_TIM1_CH1.0=TIM1_CH1,PWM Generation1 CH1
+SH.S_TIM1_CH1.ConfNb=1
 SH.S_TIM1_CH2.0=TIM1_CH2,PWM Generation2 CH2
+SH.S_TIM1_CH2.ConfNb=1
+SPI1.BaudRatePrescaler=SPI_BAUDRATEPRESCALER_64
+SPI1.CalculateBaudRate=1.3125 MBits/s
+SPI1.Direction=SPI_DIRECTION_1LINE
+SPI1.IPParameters=VirtualType,Mode,Direction,CalculateBaudRate,BaudRatePrescaler
 SPI1.Mode=SPI_MODE_MASTER
-PG7.GPIO_Label=BOARD_LED_B
-Mcu.Pin30=PA7
-VP_SYS_VS_Systick.Mode=SysTick
-RCC.EthernetFreq_Value=168000000
-Mcu.Pin33=VP_SYS_VS_Systick
-Dma.USART1_RX.0.MemDataAlignment=DMA_MDATAALIGN_BYTE
-Mcu.Pin31=PF14
-Mcu.Pin32=PB10
-NVIC.NonMaskableInt_IRQn=true\:0\:0\:false\:false\:true\:false\:false
-PF14.Locked=true
-PA13.Mode=Serial_Wire
-PG14.GPIO_Label=RefereeSystem_Tx
-ProjectManager.FreePins=false
-RCC.IPParameters=48MHZClocksFreq_Value,AHBFreq_Value,APB1CLKDivider,APB1Freq_Value,APB1TimFreq_Value,APB2CLKDivider,APB2Freq_Value,APB2TimFreq_Value,CortexFreq_Value,EthernetFreq_Value,FCLKCortexFreq_Value,FamilyName,HCLKFreq_Value,HSE_VALUE,HSI_VALUE,I2SClocksFreq_Value,LSE_VALUE,LSI_VALUE,MCO2PinFreq_Value,PLLCLKFreq_Value,PLLM,PLLN,PLLQCLKFreq_Value,PLLSourceVirtual,RTCFreq_Value,RTCHSEDivFreq_Value,SAI_AClocksFreq_Value,SAI_BClocksFreq_Value,SYSCLKFreq_VALUE,SYSCLKSource,VCOI2SOutputFreq_Value,VCOInputFreq_Value,VCOOutputFreq_Value,VCOSAIOutputFreq_Value,VCOSAIOutputFreq_ValueQ,VcooutputI2S,VcooutputI2SQ
-PE11.Locked=true
-ProjectManager.AskForMigrate=false
-Mcu.Name=STM32F427I(G-I)Hx
-PE0.Signal=UART8_RX
-PD0.Mode=CAN_Activate
-Mcu.Pin26=PG2
-Mcu.Pin27=PG1
-RCC.RTCHSEDivFreq_Value=6000000
-Mcu.Pin24=PG4
-ProjectManager.UnderRoot=false
-Mcu.Pin25=PG3
-Mcu.IP8=UART8
-Mcu.IP9=USART1
-Mcu.Pin28=PA6
-Mcu.IP6=SYS
-Mcu.Pin29=PE11
-Mcu.IP7=TIM1
-ProjectManager.CoupleFile=true
-RCC.48MHZClocksFreq_Value=84000000
-PB3.Signal=SPI1_SCK
-RCC.SYSCLKFreq_VALUE=168000000
-Mcu.Pin22=PG6
-Mcu.Pin23=PG5
-Mcu.Pin20=PH5
-PA7.GPIO_Label=OLED_MOSI
-ADC1.master=1
-Mcu.Pin21=PG7
-NVIC.ForceEnableDMAVector=true
-KeepUserPlacement=false
-Dma.USART1_TX.1.Mode=DMA_NORMAL
-NVIC.MemoryManagement_IRQn=true\:0\:0\:false\:false\:true\:false\:false
+SPI1.VirtualType=VM_MASTER
+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,Prescaler,Period,Pulse-PWM Generation1 CH1,Pulse-PWM Generation2 CH2
+TIM1.Period=9999
+TIM1.Prescaler=167
+TIM1.Pulse-PWM\ Generation1\ CH1=1000
+TIM1.Pulse-PWM\ Generation2\ CH2=1000
+UART8.IPParameters=VirtualMode
+UART8.VirtualMode=Asynchronous
+USART1.BaudRate=100000
+USART1.IPParameters=VirtualMode,BaudRate,Parity,Mode
+USART1.Mode=MODE_TX_RX
+USART1.Parity=PARITY_EVEN
 USART1.VirtualMode=VM_ASYNC
-ProjectManager.CompilerOptimize=6
-PB7.Mode=Asynchronous
-PA14.Signal=SYS_JTCK-SWCLK
-ProjectManager.HeapSize=0x200
-Mcu.Pin15=PH0/OSC_IN
-Dma.USART1_TX.1.PeriphInc=DMA_PINC_DISABLE
-NVIC.HardFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false
-Mcu.Pin16=PH3
-PH5.Locked=true
-Mcu.Pin13=PH2
-Mcu.Pin14=PA8
-Dma.USART6_TX.3.FIFOMode=DMA_FIFOMODE_DISABLE
-Mcu.Pin19=PG8
-Dma.USART6_TX.3.Instance=DMA2_Stream6
-ProjectManager.ComputerToolchain=false
-Mcu.Pin17=PH1/OSC_OUT
-RCC.HSI_VALUE=16000000
-Mcu.Pin18=PH4
-PH2.Locked=true
-NVIC.PriorityGroup=NVIC_PRIORITYGROUP_4
-ADC1.NbrOfConversionFlag=1
-Mcu.Pin11=PD1
-PH3.Signal=GPIO_Output
-PD0.GPIOParameters=GPIO_Label
-Mcu.Pin12=PA9
-RCC.PLLM=6
-RCC.PLLN=168
-Mcu.Pin10=PG9
-PG3.GPIO_Label=BOARD_LED_F
-Dma.USART6_RX.2.PeriphInc=DMA_PINC_DISABLE
-RCC.APB1Freq_Value=42000000
-PD1.Locked=true
-PA7.GPIOParameters=GPIO_Label
-ProjectManager.DeviceId=STM32F427IIHx
-PE0.Mode=Asynchronous
-PH2.GPIO_Label=BOARD_POWER1_CTRL
-PG7.GPIOParameters=GPIO_Label
-ProjectManager.LibraryCopy=1
-NVIC.CAN1_RX0_IRQn=true\:0\:0\:false\:false\:true\:true\:true
-PE1.GPIOParameters=GPIO_Label
-PA7.Signal=SPI1_MOSI
-PA6.Locked=true
+USART6.IPParameters=VirtualMode
+USART6.VirtualMode=VM_ASYNC
+VP_SYS_VS_Systick.Mode=SysTick
+VP_SYS_VS_Systick.Signal=SYS_VS_Systick
+board=custom