diff --git a/.gitignore b/.gitignore
index 4b9e4064f0e338b16271541494e610ee40e7bdad..a2fe82280f45deac7060b01d18fb58de60a2674f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -40,6 +40,7 @@ Thumbs.db
 
 Drivers/
 MDK-ARM/bin/*
+.mxproject
 
 # Keil #
 ########
diff --git a/.mxproject b/.mxproject
deleted file mode 100644
index 3904f68b0186aa65e07cfb81d7bf48ffc3ac5713..0000000000000000000000000000000000000000
--- a/.mxproject
+++ /dev/null
@@ -1,14 +0,0 @@
-[PreviousLibFiles]
-LibFiles=Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h;Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_exti.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_can.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_uart.h;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc_ex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ramfunc.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h;Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_exti.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_can.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_uart.h;Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f427xx.h;Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h;Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h;Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/system_stm32f4xx.c;Drivers/CMSIS/Include/cmsis_armcc.h;Drivers/CMSIS/Include/cmsis_armclang.h;Drivers/CMSIS/Include/cmsis_compiler.h;Drivers/CMSIS/Include/cmsis_gcc.h;Drivers/CMSIS/Include/cmsis_iccarm.h;Drivers/CMSIS/Include/cmsis_version.h;Drivers/CMSIS/Include/core_armv8mbl.h;Drivers/CMSIS/Include/core_armv8mml.h;Drivers/CMSIS/Include/core_cm0.h;Drivers/CMSIS/Include/core_cm0plus.h;Drivers/CMSIS/Include/core_cm1.h;Drivers/CMSIS/Include/core_cm23.h;Drivers/CMSIS/Include/core_cm3.h;Drivers/CMSIS/Include/core_cm33.h;Drivers/CMSIS/Include/core_cm4.h;Drivers/CMSIS/Include/core_cm7.h;Drivers/CMSIS/Include/core_sc000.h;Drivers/CMSIS/Include/core_sc300.h;Drivers/CMSIS/Include/mpu_armv7.h;Drivers/CMSIS/Include/mpu_armv8.h;Drivers/CMSIS/Include/tz_context.h;
-
-[PreviousUsedKeilFiles]
-SourceFiles=..\Src\main.c;..\Src\gpio.c;..\Src\adc.c;..\Src\can.c;..\Src\dma.c;..\Src\spi.c;..\Src\tim.c;..\Src\usart.c;..\Src\stm32f4xx_it.c;..\Src\stm32f4xx_hal_msp.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc_ex.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ramfunc.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c;..\\Src/system_stm32f4xx.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc_ex.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ramfunc.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c;..\\Src/system_stm32f4xx.c;..\Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/system_stm32f4xx.c;;
-HeaderPath=..\Drivers\STM32F4xx_HAL_Driver\Inc;..\Drivers\STM32F4xx_HAL_Driver\Inc\Legacy;..\Drivers\CMSIS\Device\ST\STM32F4xx\Include;..\Drivers\CMSIS\Include;..\Inc;
-CDefines=USE_HAL_DRIVER;STM32F427xx;USE_HAL_DRIVER;USE_HAL_DRIVER;
-
-[PreviousGenFiles]
-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/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/Inc/stm32f4xx_it.h b/Inc/stm32f4xx_it.h
index 572ab75ad75177876c9dcc7a179697151cc44165..973203062ce68c336d363cdb13d54e355df98f07 100644
--- a/Inc/stm32f4xx_it.h
+++ b/Inc/stm32f4xx_it.h
@@ -56,6 +56,7 @@ void SVC_Handler(void);
 void DebugMon_Handler(void);
 void PendSV_Handler(void);
 void SysTick_Handler(void);
+void DMA1_Stream0_IRQHandler(void);
 void CAN1_TX_IRQHandler(void);
 void CAN1_RX0_IRQHandler(void);
 void USART1_IRQHandler(void);
@@ -64,6 +65,7 @@ void DMA2_Stream2_IRQHandler(void);
 void DMA2_Stream6_IRQHandler(void);
 void DMA2_Stream7_IRQHandler(void);
 void USART6_IRQHandler(void);
+void UART8_IRQHandler(void);
 /* USER CODE BEGIN EFP */
 
 /* USER CODE END EFP */
diff --git a/MDK-ARM/RobotMaster_allRobots.uvprojx b/MDK-ARM/RobotMaster_allRobots.uvprojx
index 6b27d694a2c31c7e92a3ee3e7e7a2fd40c5d52ba..d542a1dc36e4a98053fc3dd8d04de0e627c7bdfd 100644
--- a/MDK-ARM/RobotMaster_allRobots.uvprojx
+++ b/MDK-ARM/RobotMaster_allRobots.uvprojx
@@ -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;../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy</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>
diff --git a/RobotMaster_allRobots.ioc b/RobotMaster_allRobots.ioc
index 8ab2d6c26502298fe0c8e576ea8dc493b419c3b8..fc4beceab38b3013c74432274e8f91eac16ebe5e 100644
--- a/RobotMaster_allRobots.ioc
+++ b/RobotMaster_allRobots.ioc
@@ -1,360 +1,373 @@
 #MicroXplorer Configuration settings - do not modify
-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
+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
 Dma.USART1_TX.1.MemInc=DMA_MINC_ENABLE
-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
+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.USART6_RX.2.Direction=DMA_PERIPH_TO_MEMORY
-Dma.USART6_RX.2.FIFOMode=DMA_FIFOMODE_DISABLE
-Dma.USART6_RX.2.Instance=DMA2_Stream1
+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.MemDataAlignment=DMA_MDATAALIGN_BYTE
-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
+PinOutPanel.RotationAngle=0
+PH5.GPIOParameters=GPIO_Label
+RCC.SYSCLKSource=RCC_SYSCLKSOURCE_PLLCLK
+ProjectManager.StackSize=0x400
 Dma.USART6_TX.3.PeriphDataAlignment=DMA_PDATAALIGN_BYTE
-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
-Mcu.IP10=USART6
-Mcu.IP2=DMA
-Mcu.IP3=NVIC
+RCC.SAI_BClocksFreq_Value=24500000
 Mcu.IP4=RCC
+RCC.FCLKCortexFreq_Value=168000000
 Mcu.IP5=SPI1
-Mcu.IP6=SYS
-Mcu.IP7=TIM1
-Mcu.IP8=UART8
-Mcu.IP9=USART1
+Mcu.IP2=DMA
+NVIC.SVCall_IRQn=true\:0\:0\:false\:false\:true\:false\:false
+Mcu.IP3=NVIC
+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.IPNb=11
-Mcu.Name=STM32F427I(G-I)Hx
-Mcu.Package=UFBGA176
+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
+Dma.UART8_TX.4.Priority=DMA_PRIORITY_LOW
+Mcu.Pin9=PD0
+RCC.VCOSAIOutputFreq_Value=98000000
+PE1.Signal=UART8_TX
+RCC.AHBFreq_Value=168000000
+Dma.USART1_RX.0.Priority=DMA_PRIORITY_LOW
 Mcu.Pin0=PE1
 Mcu.Pin1=PE0
-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
+GPIO.groupedBy=Group By Peripherals
 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
-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
-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
-NVIC.USART1_IRQn=true\:0\:0\:false\:false\:true\:true\:true
-NVIC.USART6_IRQn=true\:0\:0\:false\:false\:true\:true\:true
+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
-PA13.Mode=Serial_Wire
-PA13.Signal=SYS_JTMS-SWDIO
-PA14.Mode=Serial_Wire
-PA14.Signal=SYS_JTCK-SWCLK
-PA6.GPIOParameters=GPIO_Label
-PA6.GPIO_Label=OLED_Analog
-PA6.Locked=true
-PA6.Signal=ADCx_IN6
-PA7.GPIOParameters=GPIO_Label
-PA7.GPIO_Label=OLED_MOSI
-PA7.Locked=true
-PA7.Mode=Simplex_Bidirectional_Master
-PA7.Signal=SPI1_MOSI
-PA8.Signal=S_TIM1_CH1
-PA9.Signal=S_TIM1_CH2
-PB10.GPIOParameters=GPIO_Label
-PB10.GPIO_Label=OLED_RST
-PB10.Locked=true
-PB10.Signal=GPIO_Output
-PB3.GPIOParameters=GPIO_Label
-PB3.GPIO_Label=OLED_SCK
-PB3.Locked=true
+NVIC.DebugMonitor_IRQn=true\:0\:0\:false\:false\:true\:false\:false
 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
-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
+Mcu.IP10=USART6
 PD1.GPIOParameters=GPIO_Label
+NVIC.SysTick_IRQn=true\:0\:0\:false\:false\:true\:false\:true
 PD1.GPIO_Label=CAN1_TX
-PD1.Locked=true
-PD1.Mode=CAN_Activate
-PD1.Signal=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
-PE0.GPIO_Label=DEBUG_RX
-PE0.Locked=true
-PE0.Mode=Asynchronous
-PE0.Signal=UART8_RX
-PE1.GPIOParameters=GPIO_Label
-PE1.GPIO_Label=DEBUG_TX
+ProjectManager.BackupPrevious=false
+RCC.VCOInputFreq_Value=2000000
+TIM1.Channel-PWM\ Generation1\ CH1=TIM_CHANNEL_1
+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
-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
+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=5
+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
+PA6.Signal=ADCx_IN6
+NVIC.DMA2_Stream7_IRQn=true\:0\:0\:false\:false\:true\:false\:true
+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
+Dma.UART8_TX.4.PeriphDataAlignment=DMA_PDATAALIGN_BYTE
+PH3.GPIO_Label=BOARD_POWER2_CTRL
+Dma.UART8_TX.4.MemInc=DMA_MINC_ENABLE
+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
-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
+Dma.Request1=USART1_TX
+RCC.APB1TimFreq_Value=84000000
+Dma.Request4=UART8_TX
+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
+NVIC.DMA1_Stream0_IRQn=true\:0\:0\:false\:false\:true\:false\:true
+TIM1.Period=9999
+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
-PG2.Locked=true
-PG2.Signal=GPIO_Output
-PG3.GPIOParameters=GPIO_Label
-PG3.GPIO_Label=BOARD_LED_F
-PG3.Locked=true
+CAN1.CalculateTimeQuantum=71.42857142857143
+Dma.USART1_TX.1.Direction=DMA_MEMORY_TO_PERIPH
+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
+NVIC.UART8_IRQn=true\:0\:0\:false\:false\:true\:true\:true
+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
+PB9.GPIO_Label=OLED_DC
+Mcu.PinsNb=34
+ProjectManager.NoMain=false
+SPI1.IPParameters=VirtualType,Mode,Direction,CalculateBaudRate,BaudRatePrescaler
 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
+SH.ADCx_IN6.0=ADC1_IN6,IN6
+ADC1.IPParameters=Rank-0\#ChannelRegularConversion,master,Channel-0\#ChannelRegularConversion,SamplingTime-0\#ChannelRegularConversion,NbrOfConversionFlag
+USART6.IPParameters=VirtualMode
+PG1.Signal=GPIO_Output
 PG5.Locked=true
+Dma.USART1_TX.1.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority,FIFOMode
 PG5.Signal=GPIO_Output
-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
 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=
+PG3.Locked=true
+PG1.Locked=true
+CAN1.IPParameters=CalculateTimeQuantum,Prescaler,BS1,BS2,ABOM,CalculateTimeBit,CalculateBaudRate
+PE1.Mode=Asynchronous
+CAN1.CalculateBaudRate=933333
+PG9.Mode=Asynchronous
+PD1.Signal=CAN1_TX
 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
-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
+UART8.VirtualMode=Asynchronous
+PB10.Locked=true
+Dma.UART8_TX.4.Direction=DMA_MEMORY_TO_PERIPH
+Dma.USART6_TX.3.Mode=DMA_NORMAL
+PinOutPanel.CurrentBGAView=Top
 RCC.FamilyName=M
-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
+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.LSE_VALUE=32768
-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
+Dma.USART1_RX.0.PeriphInc=DMA_PINC_DISABLE
+SH.S_TIM1_CH2.ConfNb=1
+CAN1.ABOM=ENABLE
+PB10.Signal=GPIO_Output
 RCC.VCOI2SOutputFreq_Value=384000000
-RCC.VCOInputFreq_Value=2000000
+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.VCOOutputFreq_Value=336000000
-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
+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.UART8_TX.4.PeriphInc=DMA_PINC_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
 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
-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
-USART6.IPParameters=VirtualMode
-USART6.VirtualMode=VM_ASYNC
+PG7.GPIO_Label=BOARD_LED_B
+Dma.UART8_TX.4.FIFOMode=DMA_FIFOMODE_DISABLE
+Mcu.Pin30=PA7
 VP_SYS_VS_Systick.Mode=SysTick
-VP_SYS_VS_Systick.Signal=SYS_VS_Systick
-board=custom
+Dma.UART8_TX.4.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority,FIFOMode
+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=true
+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
+Dma.UART8_TX.4.Mode=DMA_NORMAL
+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.UART8_TX.4.MemDataAlignment=DMA_MDATAALIGN_BYTE
+Dma.USART1_TX.1.Mode=DMA_NORMAL
+NVIC.MemoryManagement_IRQn=true\:0\:0\:false\:false\:true\:false\:false
+USART1.VirtualMode=VM_ASYNC
+ProjectManager.CompilerOptimize=6
+Dma.UART8_TX.4.Instance=DMA1_Stream0
+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
diff --git a/Src/BoardA_handle.c b/Src/BoardA_handle.c
index e478e9b212c0a571127b6d6a3d7d417f159499cd..6da718961dd78dd21fd28054f9c54a1d1ee19e3e 100644
--- a/Src/BoardA_handle.c
+++ b/Src/BoardA_handle.c
@@ -95,17 +95,25 @@ Exemple : uart_debug_printf("\tAngle: %u (%x)\r\n", motors[TOURELLE_YAW].info.an
 */
 void uart_debug(){
 	static uint32_t tickstart = 0;
+	static char buff[1000] = {0};
+	static char buff2[1000] = {0};
 	if(tickstart == 0){
 		tickstart = HAL_GetTick();
 	}
-  if ((HAL_GetTick() - tickstart) < 1000){
+  if ((HAL_GetTick() - tickstart) < 200){
 		return;
 	}
 	tickstart = HAL_GetTick();
-	uart_debug_command("[2J"); //Clear entire screen
-	uart_debug_printf("\r\nFRONT_LEFT\r\n");
-	uart_debug_printf("\tSpeed: %f\r\n", motors[FRONT_LEFT].info.speed);
+	snprintf(buff2, 1000, "%f,%f,%f,", motors[FRONT_LEFT].consigne, motors[FRONT_LEFT].command, motors[FRONT_LEFT].info.speed);
+	snprintf(buff, 1000, "%f,%f,%f,", motors[FRONT_RIGHT].consigne, motors[FRONT_RIGHT].command, motors[FRONT_RIGHT].info.speed);
+	strcat(buff2, buff);
+	snprintf(buff, 1000, "%f,%f,%f,", motors[BACK_LEFT].consigne, motors[BACK_LEFT].command, motors[BACK_LEFT].info.speed);
+	strcat(buff2, buff);
+	snprintf(buff, 1000, "%f,%f,%f_", motors[BACK_RIGHT].consigne, motors[BACK_RIGHT].command, motors[BACK_RIGHT].info.speed);
+	strcat(buff2, buff);
+	HAL_UART_Transmit_DMA(&huart8, (uint8_t*)buff2, strlen(buff2));
 	/*
+	uart_debug_command("[2J"); //Clear entire screen
 	uart_debug_printf("\r\nTOURELLE YAW\r\n");
 	uart_debug_printf("\tAngle: %u (%x)\r\n", motors[TOURELLE_YAW].info.angle, motors[TOURELLE_YAW].info.angle);
 	uart_debug_printf("\tSpeed: %d\r\n", motors[TOURELLE_YAW].info.speed);
diff --git a/Src/dma.c b/Src/dma.c
index e18e3747912349474b898d586a1c5cec4da9b5b7..55f6cd3bf0cfc99dda9f0dd6b39659e7bdb5374e 100644
--- a/Src/dma.c
+++ b/Src/dma.c
@@ -40,8 +40,12 @@ void MX_DMA_Init(void)
 
   /* DMA controller clock enable */
   __HAL_RCC_DMA2_CLK_ENABLE();
+  __HAL_RCC_DMA1_CLK_ENABLE();
 
   /* DMA interrupt init */
+  /* DMA1_Stream0_IRQn interrupt configuration */
+  HAL_NVIC_SetPriority(DMA1_Stream0_IRQn, 0, 0);
+  HAL_NVIC_EnableIRQ(DMA1_Stream0_IRQn);
   /* DMA2_Stream1_IRQn interrupt configuration */
   HAL_NVIC_SetPriority(DMA2_Stream1_IRQn, 0, 0);
   HAL_NVIC_EnableIRQ(DMA2_Stream1_IRQn);
diff --git a/Src/stm32f4xx_it.c b/Src/stm32f4xx_it.c
index 46150cf4c4355be33bbb8e1048270fd655cf7166..f1f18fcb1a09fc80c1b14f1e2c82b753b439e03e 100644
--- a/Src/stm32f4xx_it.c
+++ b/Src/stm32f4xx_it.c
@@ -62,10 +62,12 @@
 
 /* External variables --------------------------------------------------------*/
 extern CAN_HandleTypeDef hcan1;
+extern DMA_HandleTypeDef hdma_uart8_tx;
 extern DMA_HandleTypeDef hdma_usart1_rx;
 extern DMA_HandleTypeDef hdma_usart1_tx;
 extern DMA_HandleTypeDef hdma_usart6_rx;
 extern DMA_HandleTypeDef hdma_usart6_tx;
+extern UART_HandleTypeDef huart8;
 extern UART_HandleTypeDef huart1;
 extern UART_HandleTypeDef huart6;
 /* USER CODE BEGIN EV */
@@ -208,6 +210,20 @@ void SysTick_Handler(void)
 /* please refer to the startup file (startup_stm32f4xx.s).                    */
 /******************************************************************************/
 
+/**
+  * @brief This function handles DMA1 stream0 global interrupt.
+  */
+void DMA1_Stream0_IRQHandler(void)
+{
+  /* USER CODE BEGIN DMA1_Stream0_IRQn 0 */
+
+  /* USER CODE END DMA1_Stream0_IRQn 0 */
+  HAL_DMA_IRQHandler(&hdma_uart8_tx);
+  /* USER CODE BEGIN DMA1_Stream0_IRQn 1 */
+
+  /* USER CODE END DMA1_Stream0_IRQn 1 */
+}
+
 /**
   * @brief This function handles CAN1 TX interrupts.
   */
@@ -354,6 +370,20 @@ void USART6_IRQHandler(void)
   /* USER CODE END USART6_IRQn 1 */
 }
 
+/**
+  * @brief This function handles UART8 global interrupt.
+  */
+void UART8_IRQHandler(void)
+{
+  /* USER CODE BEGIN UART8_IRQn 0 */
+
+  /* USER CODE END UART8_IRQn 0 */
+  HAL_UART_IRQHandler(&huart8);
+  /* USER CODE BEGIN UART8_IRQn 1 */
+
+  /* USER CODE END UART8_IRQn 1 */
+}
+
 /* USER CODE BEGIN 1 */
 extern uint32_t signOfLife_CAN1_tick;
 void HAL_CAN_RxFifo0MsgPendingCallback(CAN_HandleTypeDef *hcan){
diff --git a/Src/traitement.c b/Src/traitement.c
index 7b218bc65c55bf7f27cd24bf158bb0cf391bcb76..80597e151e9a5896c35a1eead2e53dcc29791189 100644
--- a/Src/traitement.c
+++ b/Src/traitement.c
@@ -26,12 +26,6 @@ void traitement_pids_compute(){
 void traitement_1(){
 	add_consigne_position(&motors[TOURELLE_PITCH], (float)receiver_RadioController.data.ch2_float, 0.00005);
 	add_consigne_position(&motors[TOURELLE_YAW], 	(float)receiver_RadioController.data.ch1_float, -0.00005);
-			
-	if(motors[TOURELLE_PITCH].info.angle_360 > 293){
-		BOARD_LED_GREEN_ON();
-	}else{
-		BOARD_LED_GREEN_OFF();
-	}
 	
 	
 	switch(receiver_RadioController.data.sw1){
diff --git a/Src/usart.c b/Src/usart.c
index e2d5a4ae13e8489a9e10d87f6ed4baf2f9e27768..d966a933af359fe9bb4fac55b1c848c92df4b8cc 100644
--- a/Src/usart.c
+++ b/Src/usart.c
@@ -27,6 +27,7 @@
 UART_HandleTypeDef huart8;
 UART_HandleTypeDef huart1;
 UART_HandleTypeDef huart6;
+DMA_HandleTypeDef hdma_uart8_tx;
 DMA_HandleTypeDef hdma_usart1_rx;
 DMA_HandleTypeDef hdma_usart1_tx;
 DMA_HandleTypeDef hdma_usart6_rx;
@@ -113,6 +114,28 @@ void HAL_UART_MspInit(UART_HandleTypeDef* uartHandle)
     GPIO_InitStruct.Alternate = GPIO_AF8_UART8;
     HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);
 
+    /* UART8 DMA Init */
+    /* UART8_TX Init */
+    hdma_uart8_tx.Instance = DMA1_Stream0;
+    hdma_uart8_tx.Init.Channel = DMA_CHANNEL_5;
+    hdma_uart8_tx.Init.Direction = DMA_MEMORY_TO_PERIPH;
+    hdma_uart8_tx.Init.PeriphInc = DMA_PINC_DISABLE;
+    hdma_uart8_tx.Init.MemInc = DMA_MINC_ENABLE;
+    hdma_uart8_tx.Init.PeriphDataAlignment = DMA_PDATAALIGN_BYTE;
+    hdma_uart8_tx.Init.MemDataAlignment = DMA_MDATAALIGN_BYTE;
+    hdma_uart8_tx.Init.Mode = DMA_NORMAL;
+    hdma_uart8_tx.Init.Priority = DMA_PRIORITY_LOW;
+    hdma_uart8_tx.Init.FIFOMode = DMA_FIFOMODE_DISABLE;
+    if (HAL_DMA_Init(&hdma_uart8_tx) != HAL_OK)
+    {
+      Error_Handler();
+    }
+
+    __HAL_LINKDMA(uartHandle,hdmatx,hdma_uart8_tx);
+
+    /* UART8 interrupt Init */
+    HAL_NVIC_SetPriority(UART8_IRQn, 0, 0);
+    HAL_NVIC_EnableIRQ(UART8_IRQn);
   /* USER CODE BEGIN UART8_MspInit 1 */
 	__HAL_UART_CLEAR_IDLEFLAG(&huart8);
 	__HAL_UART_ENABLE_IT(&huart8, UART_IT_IDLE);
@@ -267,6 +290,11 @@ void HAL_UART_MspDeInit(UART_HandleTypeDef* uartHandle)
     */
     HAL_GPIO_DeInit(GPIOE, DEBUG_TX_Pin|DEBUG_RX_Pin);
 
+    /* UART8 DMA DeInit */
+    HAL_DMA_DeInit(uartHandle->hdmatx);
+
+    /* UART8 interrupt Deinit */
+    HAL_NVIC_DisableIRQ(UART8_IRQn);
   /* USER CODE BEGIN UART8_MspDeInit 1 */
 
   /* USER CODE END UART8_MspDeInit 1 */