diff --git a/BHBF_NewFiveWheel3.0.ioc b/BHBF_NewFiveWheel3.0.ioc
new file mode 100644
index 0000000..37e9914
--- /dev/null
+++ b/BHBF_NewFiveWheel3.0.ioc
@@ -0,0 +1,890 @@
+#MicroXplorer Configuration settings - do not modify
+ADC2.Channel-0\#ChannelRegularConversion=ADC_CHANNEL_5
+ADC2.ContinuousConvMode=ENABLE
+ADC2.DiscontinuousConvMode=DISABLE
+ADC2.IPParameters=Rank-0\#ChannelRegularConversion,Channel-0\#ChannelRegularConversion,SamplingTime-0\#ChannelRegularConversion,OffsetNumber-0\#ChannelRegularConversion,OffsetSignedSaturation-0\#ChannelRegularConversion,NbrOfConversionFlag,DiscontinuousConvMode,ContinuousConvMode
+ADC2.NbrOfConversionFlag=1
+ADC2.OffsetNumber-0\#ChannelRegularConversion=ADC_OFFSET_NONE
+ADC2.OffsetSignedSaturation-0\#ChannelRegularConversion=DISABLE
+ADC2.Rank-0\#ChannelRegularConversion=1
+ADC2.SamplingTime-0\#ChannelRegularConversion=ADC_SAMPLETIME_1CYCLE_5
+CORTEX_M7.AccessPermission-Cortex_Memory_Protection_Unit_Region0_Settings=MPU_REGION_FULL_ACCESS
+CORTEX_M7.AccessPermission-Cortex_Memory_Protection_Unit_Region1_Settings=MPU_REGION_FULL_ACCESS
+CORTEX_M7.AccessPermission-Cortex_Memory_Protection_Unit_Region2_Settings=MPU_REGION_FULL_ACCESS
+CORTEX_M7.BaseAddress-Cortex_Memory_Protection_Unit_Region0_Settings=0x30040000
+CORTEX_M7.BaseAddress-Cortex_Memory_Protection_Unit_Region1_Settings=0x30040000
+CORTEX_M7.BaseAddress-Cortex_Memory_Protection_Unit_Region2_Settings=0x30030000
+CORTEX_M7.CPU_DCache=Enabled
+CORTEX_M7.CPU_ICache=Enabled
+CORTEX_M7.Enable-Cortex_Memory_Protection_Unit_Region0_Settings=MPU_REGION_ENABLE
+CORTEX_M7.Enable-Cortex_Memory_Protection_Unit_Region1_Settings=MPU_REGION_ENABLE
+CORTEX_M7.Enable-Cortex_Memory_Protection_Unit_Region2_Settings=MPU_REGION_ENABLE
+CORTEX_M7.IPParameters=MPU_Control,CPU_ICache,CPU_DCache,Enable-Cortex_Memory_Protection_Unit_Region2_Settings,Enable-Cortex_Memory_Protection_Unit_Region0_Settings,BaseAddress-Cortex_Memory_Protection_Unit_Region0_Settings,Size-Cortex_Memory_Protection_Unit_Region0_Settings,IsBufferable-Cortex_Memory_Protection_Unit_Region0_Settings,AccessPermission-Cortex_Memory_Protection_Unit_Region0_Settings,Enable-Cortex_Memory_Protection_Unit_Region1_Settings,BaseAddress-Cortex_Memory_Protection_Unit_Region1_Settings,Size-Cortex_Memory_Protection_Unit_Region1_Settings,AccessPermission-Cortex_Memory_Protection_Unit_Region1_Settings,IsCacheable-Cortex_Memory_Protection_Unit_Region1_Settings,IsShareable-Cortex_Memory_Protection_Unit_Region1_Settings,TypeExtField-Cortex_Memory_Protection_Unit_Region1_Settings,IsShareable-Cortex_Memory_Protection_Unit_Region0_Settings,SubRegionDisable-Cortex_Memory_Protection_Unit_Region0_Settings,IsBufferable-Cortex_Memory_Protection_Unit_Region1_Settings,TypeExtField-Cortex_Memory_Protection_Unit_Region0_Settings,BaseAddress-Cortex_Memory_Protection_Unit_Region2_Settings,Size-Cortex_Memory_Protection_Unit_Region2_Settings,TypeExtField-Cortex_Memory_Protection_Unit_Region2_Settings,AccessPermission-Cortex_Memory_Protection_Unit_Region2_Settings
+CORTEX_M7.IsBufferable-Cortex_Memory_Protection_Unit_Region0_Settings=MPU_ACCESS_NOT_BUFFERABLE
+CORTEX_M7.IsBufferable-Cortex_Memory_Protection_Unit_Region1_Settings=MPU_ACCESS_BUFFERABLE
+CORTEX_M7.IsCacheable-Cortex_Memory_Protection_Unit_Region1_Settings=MPU_ACCESS_NOT_CACHEABLE
+CORTEX_M7.IsShareable-Cortex_Memory_Protection_Unit_Region0_Settings=MPU_ACCESS_NOT_SHAREABLE
+CORTEX_M7.IsShareable-Cortex_Memory_Protection_Unit_Region1_Settings=MPU_ACCESS_SHAREABLE
+CORTEX_M7.MPU_Control=MPU_PRIVILEGED_DEFAULT
+CORTEX_M7.Size-Cortex_Memory_Protection_Unit_Region0_Settings=MPU_REGION_SIZE_32KB
+CORTEX_M7.Size-Cortex_Memory_Protection_Unit_Region1_Settings=MPU_REGION_SIZE_1KB
+CORTEX_M7.Size-Cortex_Memory_Protection_Unit_Region2_Settings=MPU_REGION_SIZE_32KB
+CORTEX_M7.SubRegionDisable-Cortex_Memory_Protection_Unit_Region0_Settings=0x0
+CORTEX_M7.TypeExtField-Cortex_Memory_Protection_Unit_Region0_Settings=MPU_TEX_LEVEL1
+CORTEX_M7.TypeExtField-Cortex_Memory_Protection_Unit_Region1_Settings=MPU_TEX_LEVEL0
+CORTEX_M7.TypeExtField-Cortex_Memory_Protection_Unit_Region2_Settings=MPU_TEX_LEVEL1
+Dma.Request0=UART4_TX
+Dma.Request1=USART1_TX
+Dma.Request2=UART5_TX
+Dma.Request3=USART2_TX
+Dma.Request4=USART3_TX
+Dma.Request5=USART6_TX
+Dma.Request6=UART7_TX
+Dma.RequestsNb=7
+Dma.UART4_TX.0.Direction=DMA_MEMORY_TO_PERIPH
+Dma.UART4_TX.0.EventEnable=DISABLE
+Dma.UART4_TX.0.FIFOMode=DMA_FIFOMODE_ENABLE
+Dma.UART4_TX.0.FIFOThreshold=DMA_FIFO_THRESHOLD_FULL
+Dma.UART4_TX.0.Instance=DMA1_Stream0
+Dma.UART4_TX.0.MemBurst=DMA_MBURST_SINGLE
+Dma.UART4_TX.0.MemDataAlignment=DMA_MDATAALIGN_BYTE
+Dma.UART4_TX.0.MemInc=DMA_MINC_ENABLE
+Dma.UART4_TX.0.Mode=DMA_NORMAL
+Dma.UART4_TX.0.PeriphBurst=DMA_PBURST_SINGLE
+Dma.UART4_TX.0.PeriphDataAlignment=DMA_PDATAALIGN_BYTE
+Dma.UART4_TX.0.PeriphInc=DMA_PINC_DISABLE
+Dma.UART4_TX.0.Polarity=HAL_DMAMUX_REQ_GEN_RISING
+Dma.UART4_TX.0.Priority=DMA_PRIORITY_LOW
+Dma.UART4_TX.0.RequestNumber=1
+Dma.UART4_TX.0.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority,FIFOMode,FIFOThreshold,MemBurst,PeriphBurst,SignalID,Polarity,RequestNumber,SyncSignalID,SyncPolarity,SyncEnable,EventEnable,SyncRequestNumber
+Dma.UART4_TX.0.SignalID=NONE
+Dma.UART4_TX.0.SyncEnable=DISABLE
+Dma.UART4_TX.0.SyncPolarity=HAL_DMAMUX_SYNC_NO_EVENT
+Dma.UART4_TX.0.SyncRequestNumber=1
+Dma.UART4_TX.0.SyncSignalID=NONE
+Dma.UART5_TX.2.Direction=DMA_MEMORY_TO_PERIPH
+Dma.UART5_TX.2.EventEnable=DISABLE
+Dma.UART5_TX.2.FIFOMode=DMA_FIFOMODE_DISABLE
+Dma.UART5_TX.2.Instance=DMA1_Stream3
+Dma.UART5_TX.2.MemDataAlignment=DMA_MDATAALIGN_BYTE
+Dma.UART5_TX.2.MemInc=DMA_MINC_ENABLE
+Dma.UART5_TX.2.Mode=DMA_NORMAL
+Dma.UART5_TX.2.PeriphDataAlignment=DMA_PDATAALIGN_BYTE
+Dma.UART5_TX.2.PeriphInc=DMA_PINC_DISABLE
+Dma.UART5_TX.2.Polarity=HAL_DMAMUX_REQ_GEN_RISING
+Dma.UART5_TX.2.Priority=DMA_PRIORITY_LOW
+Dma.UART5_TX.2.RequestNumber=1
+Dma.UART5_TX.2.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority,FIFOMode,SignalID,Polarity,RequestNumber,SyncSignalID,SyncPolarity,SyncEnable,EventEnable,SyncRequestNumber
+Dma.UART5_TX.2.SignalID=NONE
+Dma.UART5_TX.2.SyncEnable=DISABLE
+Dma.UART5_TX.2.SyncPolarity=HAL_DMAMUX_SYNC_NO_EVENT
+Dma.UART5_TX.2.SyncRequestNumber=1
+Dma.UART5_TX.2.SyncSignalID=NONE
+Dma.UART7_TX.6.Direction=DMA_MEMORY_TO_PERIPH
+Dma.UART7_TX.6.EventEnable=DISABLE
+Dma.UART7_TX.6.FIFOMode=DMA_FIFOMODE_DISABLE
+Dma.UART7_TX.6.Instance=DMA1_Stream1
+Dma.UART7_TX.6.MemDataAlignment=DMA_MDATAALIGN_BYTE
+Dma.UART7_TX.6.MemInc=DMA_MINC_ENABLE
+Dma.UART7_TX.6.Mode=DMA_NORMAL
+Dma.UART7_TX.6.PeriphDataAlignment=DMA_PDATAALIGN_BYTE
+Dma.UART7_TX.6.PeriphInc=DMA_PINC_DISABLE
+Dma.UART7_TX.6.Polarity=HAL_DMAMUX_REQ_GEN_RISING
+Dma.UART7_TX.6.Priority=DMA_PRIORITY_LOW
+Dma.UART7_TX.6.RequestNumber=1
+Dma.UART7_TX.6.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority,FIFOMode,SignalID,Polarity,RequestNumber,SyncSignalID,SyncPolarity,SyncEnable,EventEnable,SyncRequestNumber
+Dma.UART7_TX.6.SignalID=NONE
+Dma.UART7_TX.6.SyncEnable=DISABLE
+Dma.UART7_TX.6.SyncPolarity=HAL_DMAMUX_SYNC_NO_EVENT
+Dma.UART7_TX.6.SyncRequestNumber=1
+Dma.UART7_TX.6.SyncSignalID=NONE
+Dma.USART1_TX.1.Direction=DMA_MEMORY_TO_PERIPH
+Dma.USART1_TX.1.EventEnable=DISABLE
+Dma.USART1_TX.1.FIFOMode=DMA_FIFOMODE_ENABLE
+Dma.USART1_TX.1.FIFOThreshold=DMA_FIFO_THRESHOLD_FULL
+Dma.USART1_TX.1.Instance=DMA1_Stream2
+Dma.USART1_TX.1.MemBurst=DMA_MBURST_SINGLE
+Dma.USART1_TX.1.MemDataAlignment=DMA_MDATAALIGN_BYTE
+Dma.USART1_TX.1.MemInc=DMA_MINC_ENABLE
+Dma.USART1_TX.1.Mode=DMA_NORMAL
+Dma.USART1_TX.1.PeriphBurst=DMA_PBURST_SINGLE
+Dma.USART1_TX.1.PeriphDataAlignment=DMA_PDATAALIGN_BYTE
+Dma.USART1_TX.1.PeriphInc=DMA_PINC_DISABLE
+Dma.USART1_TX.1.Polarity=HAL_DMAMUX_REQ_GEN_RISING
+Dma.USART1_TX.1.Priority=DMA_PRIORITY_LOW
+Dma.USART1_TX.1.RequestNumber=1
+Dma.USART1_TX.1.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority,FIFOMode,FIFOThreshold,MemBurst,PeriphBurst,SignalID,Polarity,RequestNumber,SyncSignalID,SyncPolarity,SyncEnable,EventEnable,SyncRequestNumber
+Dma.USART1_TX.1.SignalID=NONE
+Dma.USART1_TX.1.SyncEnable=DISABLE
+Dma.USART1_TX.1.SyncPolarity=HAL_DMAMUX_SYNC_NO_EVENT
+Dma.USART1_TX.1.SyncRequestNumber=1
+Dma.USART1_TX.1.SyncSignalID=NONE
+Dma.USART2_TX.3.Direction=DMA_MEMORY_TO_PERIPH
+Dma.USART2_TX.3.EventEnable=DISABLE
+Dma.USART2_TX.3.FIFOMode=DMA_FIFOMODE_DISABLE
+Dma.USART2_TX.3.Instance=DMA1_Stream5
+Dma.USART2_TX.3.MemDataAlignment=DMA_MDATAALIGN_BYTE
+Dma.USART2_TX.3.MemInc=DMA_MINC_ENABLE
+Dma.USART2_TX.3.Mode=DMA_NORMAL
+Dma.USART2_TX.3.PeriphDataAlignment=DMA_PDATAALIGN_BYTE
+Dma.USART2_TX.3.PeriphInc=DMA_PINC_DISABLE
+Dma.USART2_TX.3.Polarity=HAL_DMAMUX_REQ_GEN_RISING
+Dma.USART2_TX.3.Priority=DMA_PRIORITY_LOW
+Dma.USART2_TX.3.RequestNumber=1
+Dma.USART2_TX.3.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority,FIFOMode,SignalID,Polarity,RequestNumber,SyncSignalID,SyncPolarity,SyncEnable,EventEnable,SyncRequestNumber
+Dma.USART2_TX.3.SignalID=NONE
+Dma.USART2_TX.3.SyncEnable=DISABLE
+Dma.USART2_TX.3.SyncPolarity=HAL_DMAMUX_SYNC_NO_EVENT
+Dma.USART2_TX.3.SyncRequestNumber=1
+Dma.USART2_TX.3.SyncSignalID=NONE
+Dma.USART3_TX.4.Direction=DMA_MEMORY_TO_PERIPH
+Dma.USART3_TX.4.EventEnable=DISABLE
+Dma.USART3_TX.4.FIFOMode=DMA_FIFOMODE_DISABLE
+Dma.USART3_TX.4.Instance=DMA1_Stream6
+Dma.USART3_TX.4.MemDataAlignment=DMA_MDATAALIGN_BYTE
+Dma.USART3_TX.4.MemInc=DMA_MINC_ENABLE
+Dma.USART3_TX.4.Mode=DMA_NORMAL
+Dma.USART3_TX.4.PeriphDataAlignment=DMA_PDATAALIGN_BYTE
+Dma.USART3_TX.4.PeriphInc=DMA_PINC_DISABLE
+Dma.USART3_TX.4.Polarity=HAL_DMAMUX_REQ_GEN_RISING
+Dma.USART3_TX.4.Priority=DMA_PRIORITY_LOW
+Dma.USART3_TX.4.RequestNumber=1
+Dma.USART3_TX.4.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority,FIFOMode,SignalID,Polarity,RequestNumber,SyncSignalID,SyncPolarity,SyncEnable,EventEnable,SyncRequestNumber
+Dma.USART3_TX.4.SignalID=NONE
+Dma.USART3_TX.4.SyncEnable=DISABLE
+Dma.USART3_TX.4.SyncPolarity=HAL_DMAMUX_SYNC_NO_EVENT
+Dma.USART3_TX.4.SyncRequestNumber=1
+Dma.USART3_TX.4.SyncSignalID=NONE
+Dma.USART6_TX.5.Direction=DMA_MEMORY_TO_PERIPH
+Dma.USART6_TX.5.EventEnable=DISABLE
+Dma.USART6_TX.5.FIFOMode=DMA_FIFOMODE_DISABLE
+Dma.USART6_TX.5.Instance=DMA1_Stream7
+Dma.USART6_TX.5.MemDataAlignment=DMA_MDATAALIGN_BYTE
+Dma.USART6_TX.5.MemInc=DMA_MINC_ENABLE
+Dma.USART6_TX.5.Mode=DMA_NORMAL
+Dma.USART6_TX.5.PeriphDataAlignment=DMA_PDATAALIGN_BYTE
+Dma.USART6_TX.5.PeriphInc=DMA_PINC_DISABLE
+Dma.USART6_TX.5.Polarity=HAL_DMAMUX_REQ_GEN_RISING
+Dma.USART6_TX.5.Priority=DMA_PRIORITY_LOW
+Dma.USART6_TX.5.RequestNumber=1
+Dma.USART6_TX.5.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority,FIFOMode,SignalID,Polarity,RequestNumber,SyncSignalID,SyncPolarity,SyncEnable,EventEnable,SyncRequestNumber
+Dma.USART6_TX.5.SignalID=NONE
+Dma.USART6_TX.5.SyncEnable=DISABLE
+Dma.USART6_TX.5.SyncPolarity=HAL_DMAMUX_SYNC_NO_EVENT
+Dma.USART6_TX.5.SyncRequestNumber=1
+Dma.USART6_TX.5.SyncSignalID=NONE
+ETH.IPParameters=MediaInterface,TxDescAddress,RxDescAddress,RxBuffAddress,RxBuffLen
+ETH.MediaInterface=HAL_ETH_RMII_MODE
+ETH.RxBuffAddress=0x30040400
+ETH.RxBuffLen=1528
+ETH.RxDescAddress=0x30040000
+ETH.TxDescAddress=0x30040200
+FDCAN1.CalculateBaudRateNominal=500000
+FDCAN1.CalculateTimeBitNominal=2000
+FDCAN1.CalculateTimeQuantumNominal=250.0
+FDCAN1.IPParameters=NominalPrescaler,NominalTimeSeg1,RxFifo0ElmtsNbr,TxFifoQueueElmtsNbr,CalculateTimeQuantumNominal,CalculateTimeBitNominal,CalculateBaudRateNominal
+FDCAN1.NominalPrescaler=10
+FDCAN1.NominalTimeSeg1=5
+FDCAN1.RxFifo0ElmtsNbr=32
+FDCAN1.TxFifoQueueElmtsNbr=32
+FDCAN2.CalculateBaudRateNominal=250000
+FDCAN2.CalculateTimeBitNominal=4000
+FDCAN2.CalculateTimeQuantumNominal=500.0
+FDCAN2.IPParameters=NominalPrescaler,NominalTimeSeg1,RxFifo0ElmtsNbr,TxFifoQueueElmtsNbr,CalculateTimeQuantumNominal,CalculateTimeBitNominal,CalculateBaudRateNominal
+FDCAN2.NominalPrescaler=20
+FDCAN2.NominalTimeSeg1=5
+FDCAN2.RxFifo0ElmtsNbr=32
+FDCAN2.TxFifoQueueElmtsNbr=32
+File.Version=6
+GPIO.groupedBy=Group By Peripherals
+I2C4.IPParameters=Timing
+I2C4.Timing=0x10C0ECFF
+KeepUserPlacement=false
+LPUART1.BaudRate=57600
+LPUART1.IPParameters=BaudRate,OverrunDisableParam
+LPUART1.OverrunDisableParam=UART_ADVFEATURE_OVERRUN_DISABLE
+LWIP.BSP.number=1
+LWIP.GATEWAY_ADDRESS=192.168.001.001
+LWIP.IPParameters=LWIP_NETIF_STATUS_CALLBACK,LWIP_DHCP,IP_ADDRESS,NETMASK_ADDRESS,GATEWAY_ADDRESS,MEM_SIZE,LWIP_RAM_HEAP_POINTER
+LWIP.IP_ADDRESS=192.168.001.100
+LWIP.LWIP_DHCP=0
+LWIP.LWIP_NETIF_STATUS_CALLBACK=1
+LWIP.LWIP_RAM_HEAP_POINTER=0x30044000
+LWIP.MEM_SIZE=1600
+LWIP.NETMASK_ADDRESS=255.255.255.000
+LWIP.Version=v2.1.2_Cube
+LWIP0.BSP.STBoard=false
+LWIP0.BSP.api=BSP_COMPONENT_DRIVER
+LWIP0.BSP.component=LAN8742
+LWIP0.BSP.condition=
+LWIP0.BSP.instance=LAN8742
+LWIP0.BSP.ip=
+LWIP0.BSP.mode=
+LWIP0.BSP.name=Driver_PHY
+LWIP0.BSP.semaphore=S_LAN8742
+LWIP0.BSP.solution=LAN8742
+Mcu.CPN=STM32H743VGT6
+Mcu.Family=STM32H7
+Mcu.IP0=ADC2
+Mcu.IP1=CORTEX_M7
+Mcu.IP10=NVIC
+Mcu.IP11=QUADSPI
+Mcu.IP12=RCC
+Mcu.IP13=SYS
+Mcu.IP14=TIM1
+Mcu.IP15=TIM8
+Mcu.IP16=UART4
+Mcu.IP17=UART5
+Mcu.IP18=UART7
+Mcu.IP19=USART1
+Mcu.IP2=DEBUG
+Mcu.IP20=USART2
+Mcu.IP21=USART3
+Mcu.IP22=USART6
+Mcu.IP3=DMA
+Mcu.IP4=ETH
+Mcu.IP5=FDCAN1
+Mcu.IP6=FDCAN2
+Mcu.IP7=I2C4
+Mcu.IP8=LPUART1
+Mcu.IP9=LWIP
+Mcu.IPNb=23
+Mcu.Name=STM32H743VGTx
+Mcu.Package=LQFP100
+Mcu.Pin0=PE2
+Mcu.Pin1=PE3
+Mcu.Pin10=PC2_C
+Mcu.Pin11=PC3_C
+Mcu.Pin12=PA0
+Mcu.Pin13=PA1
+Mcu.Pin14=PA2
+Mcu.Pin15=PA3
+Mcu.Pin16=PA4
+Mcu.Pin17=PA5
+Mcu.Pin18=PA6
+Mcu.Pin19=PA7
+Mcu.Pin2=PE4
+Mcu.Pin20=PC4
+Mcu.Pin21=PC5
+Mcu.Pin22=PB1
+Mcu.Pin23=PB2
+Mcu.Pin24=PE7
+Mcu.Pin25=PE8
+Mcu.Pin26=PE9
+Mcu.Pin27=PE10
+Mcu.Pin28=PE11
+Mcu.Pin29=PE12
+Mcu.Pin3=PE5
+Mcu.Pin30=PE13
+Mcu.Pin31=PB11
+Mcu.Pin32=PB12
+Mcu.Pin33=PB13
+Mcu.Pin34=PB14
+Mcu.Pin35=PB15
+Mcu.Pin36=PD8
+Mcu.Pin37=PD9
+Mcu.Pin38=PD10
+Mcu.Pin39=PD11
+Mcu.Pin4=PE6
+Mcu.Pin40=PD12
+Mcu.Pin41=PD13
+Mcu.Pin42=PD14
+Mcu.Pin43=PC6
+Mcu.Pin44=PC7
+Mcu.Pin45=PC8
+Mcu.Pin46=PC9
+Mcu.Pin47=PA8
+Mcu.Pin48=PA9
+Mcu.Pin49=PA10
+Mcu.Pin5=PC13
+Mcu.Pin50=PA11
+Mcu.Pin51=PA12
+Mcu.Pin52=PA13 (JTMS/SWDIO)
+Mcu.Pin53=PA14 (JTCK/SWCLK)
+Mcu.Pin54=PA15 (JTDI)
+Mcu.Pin55=PC10
+Mcu.Pin56=PC11
+Mcu.Pin57=PC12
+Mcu.Pin58=PD0
+Mcu.Pin59=PD1
+Mcu.Pin6=PH0-OSC_IN (PH0)
+Mcu.Pin60=PD2
+Mcu.Pin61=PD3
+Mcu.Pin62=PD4
+Mcu.Pin63=PD5
+Mcu.Pin64=PD6
+Mcu.Pin65=PB3 (JTDO/TRACESWO)
+Mcu.Pin66=PB4 (NJTRST)
+Mcu.Pin67=PB5
+Mcu.Pin68=PB6
+Mcu.Pin69=PB7
+Mcu.Pin7=PH1-OSC_OUT (PH1)
+Mcu.Pin70=PB8
+Mcu.Pin71=PB9
+Mcu.Pin72=PE0
+Mcu.Pin73=PE1
+Mcu.Pin74=VP_LWIP_VS_Enabled
+Mcu.Pin75=VP_SYS_VS_Systick
+Mcu.Pin76=VP_TIM1_VS_ClockSourceINT
+Mcu.Pin77=VP_TIM8_VS_ClockSourceINT
+Mcu.Pin8=PC0
+Mcu.Pin9=PC1
+Mcu.PinsNb=78
+Mcu.ThirdPartyNb=0
+Mcu.UserConstants=
+Mcu.UserName=STM32H743VGTx
+MxCube.Version=6.6.1
+MxDb.Version=DB.6.0.60
+NVIC.BusFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
+NVIC.DMA1_Stream0_IRQn=true\:0\:0\:false\:false\:true\:false\:true\:true
+NVIC.DMA1_Stream1_IRQn=true\:0\:0\:false\:false\:true\:false\:true\:true
+NVIC.DMA1_Stream2_IRQn=true\:0\:0\:false\:false\:true\:false\:true\:true
+NVIC.DMA1_Stream3_IRQn=true\:0\:0\:false\:false\:true\:false\:true\:true
+NVIC.DMA1_Stream5_IRQn=true\:0\:0\:false\:false\:true\:false\:true\:true
+NVIC.DMA1_Stream6_IRQn=true\:0\:0\:false\:false\:true\:false\:true\:true
+NVIC.DMA1_Stream7_IRQn=true\:0\:0\:false\:false\:true\:false\:true\:true
+NVIC.DebugMonitor_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
+NVIC.ETH_IRQn=true\:6\:0\:true\:false\:true\:true\:true\:true
+NVIC.ETH_WKUP_IRQn=true\:0\:0\:false\:false\:true\:true\:true\:true
+NVIC.FDCAN1_IT0_IRQn=true\:0\:0\:false\:false\:true\:true\:true\:true
+NVIC.FDCAN2_IT0_IRQn=true\:0\:0\:false\:false\:true\:true\:true\:true
+NVIC.ForceEnableDMAVector=true
+NVIC.HardFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
+NVIC.I2C4_ER_IRQn=true\:15\:0\:true\:false\:true\:true\:true\:true
+NVIC.I2C4_EV_IRQn=true\:15\:0\:true\:false\:true\:true\:true\:true
+NVIC.LPUART1_IRQn=true\:0\:0\:false\:false\:true\:true\:true\:true
+NVIC.MemoryManagement_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
+NVIC.NonMaskableInt_IRQn=true\:0\:0\:false\:false\:true\:false\:true\:false
+NVIC.PendSV_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
+NVIC.PriorityGroup=NVIC_PRIORITYGROUP_4
+NVIC.SVCall_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
+NVIC.SysTick_IRQn=true\:15\:0\:false\:false\:true\:false\:true\:false
+NVIC.TIM1_UP_IRQn=true\:0\:0\:false\:false\:true\:true\:true\:true
+NVIC.TIM8_UP_TIM13_IRQn=true\:0\:0\:false\:false\:true\:true\:true\:true
+NVIC.UART4_IRQn=true\:0\:0\:false\:false\:true\:true\:true\:true
+NVIC.UART5_IRQn=true\:0\:0\:false\:false\:true\:true\:true\:true
+NVIC.UART7_IRQn=true\:0\:0\:false\:false\:true\:true\:true\:true
+NVIC.USART1_IRQn=true\:0\:0\:false\:false\:true\:true\:true\:true
+NVIC.USART2_IRQn=true\:0\:0\:false\:false\:true\:true\:true\:true
+NVIC.USART3_IRQn=true\:0\:0\:false\:false\:true\:true\:true\:true
+NVIC.USART6_IRQn=true\:0\:0\:false\:false\:true\:true\:true\:true
+NVIC.UsageFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
+PA0.GPIOParameters=PinState,GPIO_Label,PinAttribute
+PA0.GPIO_Label=OUT_2
+PA0.Locked=true
+PA0.PinAttribute=Free
+PA0.PinState=GPIO_PIN_SET
+PA0.Signal=GPIO_Output
+PA1.GPIOParameters=GPIO_Speed,PinAttribute
+PA1.GPIO_Speed=GPIO_SPEED_FREQ_VERY_HIGH
+PA1.Mode=RMII
+PA1.PinAttribute=Free
+PA1.Signal=ETH_REF_CLK
+PA10.Mode=Asynchronous
+PA10.Signal=LPUART1_RX
+PA11.GPIOParameters=GPIO_Speed,GPIO_PuPd,PinAttribute
+PA11.GPIO_PuPd=GPIO_PULLUP
+PA11.GPIO_Speed=GPIO_SPEED_FREQ_VERY_HIGH
+PA11.Locked=true
+PA11.Mode=Asynchronous
+PA11.PinAttribute=Free
+PA11.Signal=UART4_RX
+PA12.GPIOParameters=PinAttribute
+PA12.Locked=true
+PA12.Mode=Asynchronous
+PA12.PinAttribute=Free
+PA12.Signal=UART4_TX
+PA13\ (JTMS/SWDIO).GPIOParameters=PinAttribute
+PA13\ (JTMS/SWDIO).Locked=true
+PA13\ (JTMS/SWDIO).Mode=Serial_Wire
+PA13\ (JTMS/SWDIO).PinAttribute=Free
+PA13\ (JTMS/SWDIO).Signal=DEBUG_JTMS-SWDIO
+PA14\ (JTCK/SWCLK).GPIOParameters=PinAttribute
+PA14\ (JTCK/SWCLK).Mode=Serial_Wire
+PA14\ (JTCK/SWCLK).PinAttribute=Free
+PA14\ (JTCK/SWCLK).Signal=DEBUG_JTCK-SWCLK
+PA15\ (JTDI).GPIOParameters=PinAttribute
+PA15\ (JTDI).Locked=true
+PA15\ (JTDI).Mode=Asynchronous
+PA15\ (JTDI).PinAttribute=Free
+PA15\ (JTDI).Signal=UART7_TX
+PA2.GPIOParameters=GPIO_Speed,PinAttribute
+PA2.GPIO_Speed=GPIO_SPEED_FREQ_VERY_HIGH
+PA2.Mode=RMII
+PA2.PinAttribute=Free
+PA2.Signal=ETH_MDIO
+PA3.GPIOParameters=PinState,GPIO_Label,PinAttribute
+PA3.GPIO_Label=OUT_3
+PA3.Locked=true
+PA3.PinAttribute=Free
+PA3.PinState=GPIO_PIN_SET
+PA3.Signal=GPIO_Output
+PA4.GPIOParameters=PinState,GPIO_Label,PinAttribute
+PA4.GPIO_Label=OUT_4
+PA4.Locked=true
+PA4.PinAttribute=Free
+PA4.PinState=GPIO_PIN_SET
+PA4.Signal=GPIO_Output
+PA5.GPIOParameters=PinState,GPIO_Label,PinAttribute
+PA5.GPIO_Label=OUT_5
+PA5.Locked=true
+PA5.PinAttribute=Free
+PA5.PinState=GPIO_PIN_SET
+PA5.Signal=GPIO_Output
+PA6.GPIOParameters=GPIO_Label,PinAttribute
+PA6.GPIO_Label=ETH_RST
+PA6.Locked=true
+PA6.PinAttribute=Free
+PA6.Signal=GPIO_Output
+PA7.GPIOParameters=GPIO_Speed,PinAttribute
+PA7.GPIO_Speed=GPIO_SPEED_FREQ_VERY_HIGH
+PA7.Mode=RMII
+PA7.PinAttribute=Free
+PA7.Signal=ETH_CRS_DV
+PA8.GPIOParameters=GPIO_Speed,GPIO_PuPd,PinAttribute
+PA8.GPIO_PuPd=GPIO_PULLUP
+PA8.GPIO_Speed=GPIO_SPEED_FREQ_VERY_HIGH
+PA8.Locked=true
+PA8.Mode=Asynchronous
+PA8.PinAttribute=Free
+PA8.Signal=UART7_RX
+PA9.Mode=Asynchronous
+PA9.Signal=LPUART1_TX
+PB1.Locked=true
+PB1.Signal=ADCx_INP5
+PB11.GPIOParameters=GPIO_Speed,PinAttribute
+PB11.GPIO_Speed=GPIO_SPEED_FREQ_VERY_HIGH
+PB11.Mode=RMII
+PB11.PinAttribute=Free
+PB11.Signal=ETH_TX_EN
+PB12.GPIOParameters=GPIO_Speed,PinAttribute
+PB12.GPIO_Speed=GPIO_SPEED_FREQ_VERY_HIGH
+PB12.Mode=RMII
+PB12.PinAttribute=Free
+PB12.Signal=ETH_TXD0
+PB13.GPIOParameters=GPIO_Speed,PinAttribute
+PB13.GPIO_Speed=GPIO_SPEED_FREQ_VERY_HIGH
+PB13.Mode=RMII
+PB13.PinAttribute=Free
+PB13.Signal=ETH_TXD1
+PB14.GPIOParameters=PinAttribute
+PB14.Locked=true
+PB14.Mode=Asynchronous
+PB14.PinAttribute=Free
+PB14.Signal=USART1_TX
+PB15.GPIOParameters=GPIO_Speed,GPIO_PuPd,PinAttribute
+PB15.GPIO_PuPd=GPIO_PULLUP
+PB15.GPIO_Speed=GPIO_SPEED_FREQ_VERY_HIGH
+PB15.Mode=Asynchronous
+PB15.PinAttribute=Free
+PB15.Signal=USART1_RX
+PB2.GPIOParameters=GPIO_Speed,PinAttribute
+PB2.GPIO_Speed=GPIO_SPEED_FREQ_VERY_HIGH
+PB2.Mode=Single Bank 2
+PB2.PinAttribute=Free
+PB2.Signal=QUADSPI_CLK
+PB3\ (JTDO/TRACESWO).GPIOParameters=GPIO_Label
+PB3\ (JTDO/TRACESWO).GPIO_Label=S0_NET
+PB3\ (JTDO/TRACESWO).Locked=true
+PB3\ (JTDO/TRACESWO).Signal=GPIO_Input
+PB4\ (NJTRST).GPIOParameters=GPIO_Label
+PB4\ (NJTRST).GPIO_Label=S0_LINKA
+PB4\ (NJTRST).Locked=true
+PB4\ (NJTRST).Signal=GPIO_Input
+PB5.Locked=true
+PB5.Mode=FDCAN_Activate
+PB5.Signal=FDCAN2_RX
+PB6.Locked=true
+PB6.Mode=FDCAN_Activate
+PB6.Signal=FDCAN2_TX
+PB7.GPIOParameters=GPIO_Label
+PB7.GPIO_Label=E22_M1
+PB7.Locked=true
+PB7.Signal=GPIO_Output
+PB8.Locked=true
+PB8.Mode=FDCAN_Activate
+PB8.Signal=FDCAN1_RX
+PB9.Locked=true
+PB9.Mode=FDCAN_Activate
+PB9.Signal=FDCAN1_TX
+PC0.GPIOParameters=GPIO_Label
+PC0.GPIO_Label=S0_RESET
+PC0.Locked=true
+PC0.Signal=GPIO_Output
+PC1.GPIOParameters=GPIO_Speed
+PC1.GPIO_Speed=GPIO_SPEED_FREQ_VERY_HIGH
+PC1.Mode=RMII
+PC1.Signal=ETH_MDC
+PC10.GPIOParameters=GPIO_Label,PinAttribute
+PC10.GPIO_Label=E22_RST
+PC10.Locked=true
+PC10.PinAttribute=Free
+PC10.Signal=GPIO_Output
+PC11.GPIOParameters=GPIO_Speed
+PC11.GPIO_Speed=GPIO_SPEED_FREQ_VERY_HIGH
+PC11.Mode=Single Bank 2
+PC11.Signal=QUADSPI_BK2_NCS
+PC12.Locked=true
+PC12.Mode=Asynchronous
+PC12.Signal=UART5_TX
+PC13.GPIOParameters=GPIO_Label
+PC13.GPIO_Label=IN_5
+PC13.Locked=true
+PC13.Signal=GPIO_Input
+PC2_C.GPIOParameters=PinState,GPIO_Label,PinAttribute
+PC2_C.GPIO_Label=OUT_0
+PC2_C.Locked=true
+PC2_C.PinAttribute=Free
+PC2_C.PinState=GPIO_PIN_SET
+PC2_C.Signal=GPIO_Output
+PC3_C.GPIOParameters=PinState,GPIO_Label,PinAttribute
+PC3_C.GPIO_Label=OUT_1
+PC3_C.Locked=true
+PC3_C.PinAttribute=Free
+PC3_C.PinState=GPIO_PIN_SET
+PC3_C.Signal=GPIO_Output
+PC4.GPIOParameters=GPIO_Speed,PinAttribute
+PC4.GPIO_Speed=GPIO_SPEED_FREQ_VERY_HIGH
+PC4.Mode=RMII
+PC4.PinAttribute=Free
+PC4.Signal=ETH_RXD0
+PC5.GPIOParameters=GPIO_Speed,PinAttribute
+PC5.GPIO_Speed=GPIO_SPEED_FREQ_VERY_HIGH
+PC5.Mode=RMII
+PC5.PinAttribute=Free
+PC5.Signal=ETH_RXD1
+PC6.GPIOParameters=PinAttribute
+PC6.Mode=Asynchronous
+PC6.PinAttribute=Free
+PC6.Signal=USART6_TX
+PC7.GPIOParameters=GPIO_Speed,GPIO_PuPd,PinAttribute
+PC7.GPIO_PuPd=GPIO_PULLUP
+PC7.GPIO_Speed=GPIO_SPEED_FREQ_VERY_HIGH
+PC7.Mode=Asynchronous
+PC7.PinAttribute=Free
+PC7.Signal=USART6_RX
+PC8.GPIOParameters=GPIO_Label,PinAttribute
+PC8.GPIO_Label=RS485_3_DIR
+PC8.Locked=true
+PC8.PinAttribute=Free
+PC8.Signal=GPIO_Output
+PC9.GPIOParameters=GPIO_Label,PinAttribute
+PC9.GPIO_Label=RS485_4_DIR
+PC9.Locked=true
+PC9.PinAttribute=Free
+PC9.Signal=GPIO_Output
+PD0.GPIOParameters=GPIO_Label
+PD0.GPIO_Label=E28_M0
+PD0.Locked=true
+PD0.Signal=GPIO_Output
+PD1.GPIOParameters=GPIO_Label
+PD1.GPIO_Label=E28_M1
+PD1.Locked=true
+PD1.Signal=GPIO_Output
+PD10.GPIOParameters=GPIO_Label,PinAttribute
+PD10.GPIO_Label=RS485_1_DIR
+PD10.Locked=true
+PD10.PinAttribute=Free
+PD10.Signal=GPIO_Output
+PD11.GPIOParameters=GPIO_Label,PinAttribute
+PD11.GPIO_Label=RS485_2_DIR
+PD11.Locked=true
+PD11.PinAttribute=Free
+PD11.Signal=GPIO_Output
+PD12.GPIOParameters=PinAttribute
+PD12.Mode=I2C
+PD12.PinAttribute=Free
+PD12.Signal=I2C4_SCL
+PD13.GPIOParameters=PinAttribute
+PD13.Mode=I2C
+PD13.PinAttribute=Free
+PD13.Signal=I2C4_SDA
+PD14.GPIOParameters=PinAttribute
+PD14.Locked=true
+PD14.PinAttribute=Free
+PD14.Signal=GPXTI14
+PD2.GPIOParameters=GPIO_Speed,GPIO_PuPd
+PD2.GPIO_PuPd=GPIO_PULLUP
+PD2.GPIO_Speed=GPIO_SPEED_FREQ_VERY_HIGH
+PD2.Locked=true
+PD2.Mode=Asynchronous
+PD2.Signal=UART5_RX
+PD3.GPIOParameters=GPIO_Label
+PD3.GPIO_Label=E28_M2
+PD3.Locked=true
+PD3.Signal=GPIO_Output
+PD4.GPIOParameters=GPIO_Label
+PD4.GPIO_Label=E28_AUX
+PD4.Locked=true
+PD4.Signal=GPXTI4
+PD5.Locked=true
+PD5.Mode=Asynchronous
+PD5.Signal=USART2_TX
+PD6.GPIOParameters=GPIO_Speed,GPIO_PuPd
+PD6.GPIO_PuPd=GPIO_PULLUP
+PD6.GPIO_Speed=GPIO_SPEED_FREQ_VERY_HIGH
+PD6.Locked=true
+PD6.Mode=Asynchronous
+PD6.Signal=USART2_RX
+PD8.GPIOParameters=PinAttribute
+PD8.Locked=true
+PD8.Mode=Asynchronous
+PD8.PinAttribute=Free
+PD8.Signal=USART3_TX
+PD9.GPIOParameters=GPIO_Speed,GPIO_PuPd,PinAttribute
+PD9.GPIO_PuPd=GPIO_PULLUP
+PD9.GPIO_Speed=GPIO_SPEED_FREQ_VERY_HIGH
+PD9.Mode=Asynchronous
+PD9.PinAttribute=Free
+PD9.Signal=USART3_RX
+PE0.GPIOParameters=GPIO_Label
+PE0.GPIO_Label=E22_M0
+PE0.Locked=true
+PE0.Signal=GPIO_Output
+PE1.GPIOParameters=GPIO_Label
+PE1.GPIO_Label=E22_AUX
+PE1.Locked=true
+PE1.Signal=GPXTI1
+PE10.GPIOParameters=GPIO_Speed,PinAttribute
+PE10.GPIO_Speed=GPIO_SPEED_FREQ_VERY_HIGH
+PE10.Mode=Single Bank 2
+PE10.PinAttribute=Free
+PE10.Signal=QUADSPI_BK2_IO3
+PE11.GPIOParameters=GPIO_Label,PinAttribute
+PE11.GPIO_Label=EEPROM_WP
+PE11.Locked=true
+PE11.PinAttribute=Free
+PE11.Signal=GPIO_Output
+PE12.GPIOParameters=GPIO_Label,PinAttribute
+PE12.GPIO_Label=EEPROM_SCL
+PE12.Locked=true
+PE12.PinAttribute=Free
+PE12.Signal=GPIO_Output
+PE13.GPIOParameters=GPIO_Label,PinAttribute
+PE13.GPIO_Label=EEPROM_SDA
+PE13.Locked=true
+PE13.PinAttribute=Free
+PE13.Signal=GPIO_Input
+PE2.GPIOParameters=GPIO_Label
+PE2.GPIO_Label=IN_0
+PE2.Locked=true
+PE2.Signal=GPIO_Input
+PE3.GPIOParameters=GPIO_Label
+PE3.GPIO_Label=IN_1
+PE3.Locked=true
+PE3.Signal=GPIO_Input
+PE4.GPIOParameters=GPIO_Label
+PE4.GPIO_Label=IN_2
+PE4.Locked=true
+PE4.Signal=GPIO_Input
+PE5.GPIOParameters=GPIO_Label
+PE5.GPIO_Label=IN_3
+PE5.Locked=true
+PE5.Signal=GPIO_Input
+PE6.GPIOParameters=GPIO_Label
+PE6.GPIO_Label=IN_4
+PE6.Locked=true
+PE6.Signal=GPIO_Input
+PE7.GPIOParameters=GPIO_Speed,PinAttribute
+PE7.GPIO_Speed=GPIO_SPEED_FREQ_VERY_HIGH
+PE7.Mode=Single Bank 2
+PE7.PinAttribute=Free
+PE7.Signal=QUADSPI_BK2_IO0
+PE8.GPIOParameters=GPIO_Speed,PinAttribute
+PE8.GPIO_Speed=GPIO_SPEED_FREQ_VERY_HIGH
+PE8.Mode=Single Bank 2
+PE8.PinAttribute=Free
+PE8.Signal=QUADSPI_BK2_IO1
+PE9.GPIOParameters=GPIO_Speed,PinAttribute
+PE9.GPIO_Speed=GPIO_SPEED_FREQ_VERY_HIGH
+PE9.Mode=Single Bank 2
+PE9.PinAttribute=Free
+PE9.Signal=QUADSPI_BK2_IO2
+PH0-OSC_IN\ (PH0).Mode=HSE-External-Oscillator
+PH0-OSC_IN\ (PH0).Signal=RCC_OSC_IN
+PH1-OSC_OUT\ (PH1).Mode=HSE-External-Oscillator
+PH1-OSC_OUT\ (PH1).Signal=RCC_OSC_OUT
+PinOutPanel.RotationAngle=0
+ProjectManager.AskForMigrate=true
+ProjectManager.BackupPrevious=false
+ProjectManager.CompilerOptimize=6
+ProjectManager.ComputerToolchain=false
+ProjectManager.CoupleFile=true
+ProjectManager.CustomerFirmwarePackage=
+ProjectManager.DefaultFWLocation=true
+ProjectManager.DeletePrevious=true
+ProjectManager.DeviceId=STM32H743VGTx
+ProjectManager.FirmwarePackage=STM32Cube FW_H7 V1.11.2
+ProjectManager.FreePins=false
+ProjectManager.HalAssertFull=false
+ProjectManager.HeapSize=0x400
+ProjectManager.KeepUserCode=true
+ProjectManager.LastFirmware=true
+ProjectManager.LibraryCopy=1
+ProjectManager.MainLocation=Core/Src
+ProjectManager.NoMain=false
+ProjectManager.PreviousToolchain=STM32CubeIDE
+ProjectManager.ProjectBuild=false
+ProjectManager.ProjectFileName=BHBF_NewFiveWheel3.0.ioc
+ProjectManager.ProjectName=BHBF_NewFiveWheel3.0
+ProjectManager.RegisterCallBack=
+ProjectManager.StackSize=0x1000
+ProjectManager.TargetToolchain=STM32CubeIDE
+ProjectManager.ToolChainLocation=
+ProjectManager.UnderRoot=true
+ProjectManager.functionlistsort=1-SystemClock_Config-RCC-false-HAL-false,2-MX_GPIO_Init-GPIO-false-HAL-true,3-MX_DMA_Init-DMA-false-HAL-true,4-MX_FDCAN1_Init-FDCAN1-false-HAL-true,5-MX_FDCAN2_Init-FDCAN2-false-HAL-true,6-MX_I2C4_Init-I2C4-false-HAL-true,7-MX_TIM1_Init-TIM1-false-HAL-true,8-MX_UART4_Init-UART4-false-HAL-true,9-MX_UART5_Init-UART5-false-HAL-true,10-MX_UART7_Init-UART7-false-HAL-true,11-MX_USART1_UART_Init-USART1-false-HAL-true,12-MX_USART3_UART_Init-USART3-false-HAL-true,13-MX_USART2_UART_Init-USART2-false-HAL-true,14-MX_USART6_UART_Init-USART6-false-HAL-true,15-MX_TIM8_Init-TIM8-false-HAL-true,16-MX_LWIP_Init-LWIP-false-HAL-false,17-MX_QUADSPI_Init-QUADSPI-false-HAL-true,18-MX_LPUART1_UART_Init-LPUART1-false-HAL-true,19-MX_ADC2_Init-ADC2-false-HAL-true,0-MX_CORTEX_M7_Init-CORTEX_M7-false-HAL-true
+QUADSPI.ChipSelectHighTime=QSPI_CS_HIGH_TIME_2_CYCLE
+QUADSPI.ClockMode=QSPI_CLOCK_MODE_3
+QUADSPI.ClockPrescaler=4-1
+QUADSPI.FifoThreshold=32
+QUADSPI.FlashSize=23+1
+QUADSPI.IPParameters=ClockPrescaler,FifoThreshold,SampleShifting,FlashSize,ChipSelectHighTime,ClockMode
+QUADSPI.SampleShifting=QSPI_SAMPLE_SHIFTING_HALFCYCLE
+RCC.ADCFreq_Value=72000000
+RCC.AHB12Freq_Value=200000000
+RCC.AHB4Freq_Value=200000000
+RCC.APB1Freq_Value=100000000
+RCC.APB2Freq_Value=100000000
+RCC.APB3Freq_Value=100000000
+RCC.APB4Freq_Value=100000000
+RCC.AXIClockFreq_Value=200000000
+RCC.CECFreq_Value=32000
+RCC.CKPERFreq_Value=64000000
+RCC.CortexFreq_Value=400000000
+RCC.CpuClockFreq_Value=400000000
+RCC.D1CPREFreq_Value=400000000
+RCC.D1PPRE=RCC_APB3_DIV2
+RCC.D2PPRE1=RCC_APB1_DIV2
+RCC.D2PPRE2=RCC_APB2_DIV2
+RCC.D3PPRE=RCC_APB4_DIV2
+RCC.DFSDMACLkFreq_Value=40000000
+RCC.DFSDMFreq_Value=100000000
+RCC.DIVM1=2
+RCC.DIVM2=25
+RCC.DIVN1=64
+RCC.DIVN2=288
+RCC.DIVP1Freq_Value=400000000
+RCC.DIVP2=4
+RCC.DIVP2Freq_Value=72000000
+RCC.DIVP3Freq_Value=50390625
+RCC.DIVQ1=20
+RCC.DIVQ1Freq_Value=40000000
+RCC.DIVQ2=1
+RCC.DIVQ2Freq_Value=288000000
+RCC.DIVQ3Freq_Value=50390625
+RCC.DIVR1=4
+RCC.DIVR1Freq_Value=200000000
+RCC.DIVR2Freq_Value=144000000
+RCC.DIVR3Freq_Value=50390625
+RCC.EnbaleCSS=true
+RCC.FDCANFreq_Value=40000000
+RCC.FMCFreq_Value=200000000
+RCC.FamilyName=M
+RCC.HCLK3ClockFreq_Value=200000000
+RCC.HCLKFreq_Value=200000000
+RCC.HPRE=RCC_HCLK_DIV2
+RCC.HRTIMFreq_Value=200000000
+RCC.I2C123Freq_Value=100000000
+RCC.I2C4Freq_Value=100000000
+RCC.IPParameters=ADCFreq_Value,AHB12Freq_Value,AHB4Freq_Value,APB1Freq_Value,APB2Freq_Value,APB3Freq_Value,APB4Freq_Value,AXIClockFreq_Value,CECFreq_Value,CKPERFreq_Value,CortexFreq_Value,CpuClockFreq_Value,D1CPREFreq_Value,D1PPRE,D2PPRE1,D2PPRE2,D3PPRE,DFSDMACLkFreq_Value,DFSDMFreq_Value,DIVM1,DIVM2,DIVN1,DIVN2,DIVP1Freq_Value,DIVP2,DIVP2Freq_Value,DIVP3Freq_Value,DIVQ1,DIVQ1Freq_Value,DIVQ2,DIVQ2Freq_Value,DIVQ3Freq_Value,DIVR1,DIVR1Freq_Value,DIVR2Freq_Value,DIVR3Freq_Value,EnbaleCSS,FDCANFreq_Value,FMCFreq_Value,FamilyName,HCLK3ClockFreq_Value,HCLKFreq_Value,HPRE,HRTIMFreq_Value,I2C123Freq_Value,I2C4Freq_Value,LPTIM1Freq_Value,LPTIM2Freq_Value,LPTIM345Freq_Value,LPUART1Freq_Value,LTDCFreq_Value,MCO1PinFreq_Value,MCO2PinFreq_Value,PLL1_VCI_Range-AdvancedSettings,PLL2FRACN,PLL2_VCI_Range-AdvancedSettings,PLL3_VCI_Range-AdvancedSettings,PLLFRACN,PLLSourceVirtual,QSPIFreq_Value,RNGFreq_Value,RTCFreq_Value,SAI1Freq_Value,SAI23Freq_Value,SAI4AFreq_Value,SAI4BFreq_Value,SDMMCFreq_Value,SPDIFRXFreq_Value,SPI123Freq_Value,SPI45Freq_Value,SPI6Freq_Value,SWPMI1Freq_Value,SYSCLKFreq_VALUE,SYSCLKSource,Tim1OutputFreq_Value,Tim2OutputFreq_Value,TraceFreq_Value,USART16Freq_Value,USART234578Freq_Value,USBFreq_Value,VCO1OutputFreq_Value,VCO2OutputFreq_Value,VCO3OutputFreq_Value,VCOInput1Freq_Value,VCOInput2Freq_Value,VCOInput3Freq_Value
+RCC.LPTIM1Freq_Value=100000000
+RCC.LPTIM2Freq_Value=100000000
+RCC.LPTIM345Freq_Value=100000000
+RCC.LPUART1Freq_Value=100000000
+RCC.LTDCFreq_Value=50390625
+RCC.MCO1PinFreq_Value=64000000
+RCC.MCO2PinFreq_Value=400000000
+RCC.PLL1_VCI_Range-AdvancedSettings=RCC_PLL1VCIRANGE_3
+RCC.PLL2FRACN=0
+RCC.PLL2_VCI_Range-AdvancedSettings=RCC_PLL2VCIRANGE_0
+RCC.PLL3_VCI_Range-AdvancedSettings=RCC_PLL3VCIRANGE_3
+RCC.PLLFRACN=0
+RCC.PLLSourceVirtual=RCC_PLLSOURCE_HSE
+RCC.QSPIFreq_Value=200000000
+RCC.RNGFreq_Value=48000000
+RCC.RTCFreq_Value=32000
+RCC.SAI1Freq_Value=40000000
+RCC.SAI23Freq_Value=40000000
+RCC.SAI4AFreq_Value=40000000
+RCC.SAI4BFreq_Value=40000000
+RCC.SDMMCFreq_Value=40000000
+RCC.SPDIFRXFreq_Value=40000000
+RCC.SPI123Freq_Value=40000000
+RCC.SPI45Freq_Value=100000000
+RCC.SPI6Freq_Value=100000000
+RCC.SWPMI1Freq_Value=100000000
+RCC.SYSCLKFreq_VALUE=400000000
+RCC.SYSCLKSource=RCC_SYSCLKSOURCE_PLLCLK
+RCC.Tim1OutputFreq_Value=200000000
+RCC.Tim2OutputFreq_Value=200000000
+RCC.TraceFreq_Value=200000000
+RCC.USART16Freq_Value=100000000
+RCC.USART234578Freq_Value=100000000
+RCC.USBFreq_Value=40000000
+RCC.VCO1OutputFreq_Value=800000000
+RCC.VCO2OutputFreq_Value=288000000
+RCC.VCO3OutputFreq_Value=100781250
+RCC.VCOInput1Freq_Value=12500000
+RCC.VCOInput2Freq_Value=1000000
+RCC.VCOInput3Freq_Value=781250
+SH.ADCx_INP5.0=ADC2_INP5,IN5-Single-Ended
+SH.ADCx_INP5.ConfNb=1
+SH.GPXTI1.0=GPIO_EXTI1
+SH.GPXTI1.ConfNb=1
+SH.GPXTI14.0=GPIO_EXTI14
+SH.GPXTI14.ConfNb=1
+SH.GPXTI4.0=GPIO_EXTI4
+SH.GPXTI4.ConfNb=1
+TIM1.AutoReloadPreload=TIM_AUTORELOAD_PRELOAD_ENABLE
+TIM1.IPParameters=Prescaler,Period,AutoReloadPreload
+TIM1.Period=10000-1
+TIM1.Prescaler=2000-1
+TIM8.IPParameters=Prescaler,Period
+TIM8.Period=200-1
+TIM8.Prescaler=2000-1
+UART4.BaudRate=57600
+UART4.IPParameters=OverrunDisableParam,BaudRate
+UART4.OverrunDisableParam=UART_ADVFEATURE_OVERRUN_ENABLE
+UART5.BaudRate=100000
+UART5.DMADisableonRxErrorParam=UART_ADVFEATURE_DMA_DISABLEONRXERROR
+UART5.IPParameters=BaudRate,WordLength,Parity,OverrunDisableParam,DMADisableonRxErrorParam
+UART5.OverrunDisableParam=UART_ADVFEATURE_OVERRUN_DISABLE
+UART5.Parity=PARITY_EVEN
+UART5.WordLength=WORDLENGTH_9B
+UART7.BaudRate=9600
+UART7.DMADisableonRxErrorParam=UART_ADVFEATURE_DMA_DISABLEONRXERROR
+UART7.IPParameters=OverrunDisableParam,BaudRate,DMADisableonRxErrorParam
+UART7.OverrunDisableParam=UART_ADVFEATURE_OVERRUN_DISABLE
+USART1.BaudRate=115200
+USART1.DMADisableonRxErrorParam=ADVFEATURE_DMA_DISABLEONRXERROR
+USART1.IPParameters=VirtualMode-Asynchronous,OverrunDisableParam,DMADisableonRxErrorParam,BaudRate
+USART1.OverrunDisableParam=ADVFEATURE_OVERRUN_DISABLE
+USART1.VirtualMode-Asynchronous=VM_ASYNC
+USART2.BaudRate=57600
+USART2.DMADisableonRxErrorParam=ADVFEATURE_DMA_DISABLEONRXERROR
+USART2.IPParameters=VirtualMode-Asynchronous,OverrunDisableParam,DMADisableonRxErrorParam,BaudRate
+USART2.OverrunDisableParam=ADVFEATURE_OVERRUN_DISABLE
+USART2.VirtualMode-Asynchronous=VM_ASYNC
+USART3.BaudRate=9600
+USART3.DMADisableonRxErrorParam=ADVFEATURE_DMA_DISABLEONRXERROR
+USART3.FIFOMode=FIFOMODE_ENABLE
+USART3.IPParameters=VirtualMode-Asynchronous,DMADisableonRxErrorParam,OverrunDisableParam,FIFOMode,BaudRate
+USART3.OverrunDisableParam=ADVFEATURE_OVERRUN_DISABLE
+USART3.VirtualMode-Asynchronous=VM_ASYNC
+USART6.BaudRate=115200
+USART6.DMADisableonRxErrorParam=ADVFEATURE_DMA_ENABLEONRXERROR
+USART6.FIFOMode=FIFOMODE_ENABLE
+USART6.IPParameters=VirtualMode,OverrunDisableParam,FIFOMode,DMADisableonRxErrorParam,BaudRate,SwapParam
+USART6.OverrunDisableParam=ADVFEATURE_OVERRUN_DISABLE
+USART6.SwapParam=ADVFEATURE_SWAP_DISABLE
+USART6.VirtualMode=VM_ASYNC
+VP_LWIP_VS_Enabled.Mode=Enabled
+VP_LWIP_VS_Enabled.Signal=LWIP_VS_Enabled
+VP_SYS_VS_Systick.Mode=SysTick
+VP_SYS_VS_Systick.Signal=SYS_VS_Systick
+VP_TIM1_VS_ClockSourceINT.Mode=Internal
+VP_TIM1_VS_ClockSourceINT.Signal=TIM1_VS_ClockSourceINT
+VP_TIM8_VS_ClockSourceINT.Mode=Internal
+VP_TIM8_VS_ClockSourceINT.Signal=TIM8_VS_ClockSourceINT
+board=custom
+isbadioc=false
diff --git a/BHBF_NewFiveWheel3.0.launch b/BHBF_NewFiveWheel3.0.launch
new file mode 100644
index 0000000..9eab526
--- /dev/null
+++ b/BHBF_NewFiveWheel3.0.launch
@@ -0,0 +1,83 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/BHBF_decoder.lua b/BHBF_decoder.lua
new file mode 100644
index 0000000..fda9b53
--- /dev/null
+++ b/BHBF_decoder.lua
@@ -0,0 +1,159 @@
+--分窗标志定义
+WIN_0 = 0x0001
+WIN_1 = 0x0002
+WIN_2 = 0x0004
+WIN_3 = 0x0008
+WIN_4 = 0x0010
+WIN_5 = 0x0020
+WIN_6 = 0x0040
+WIN_7 = 0x0080
+WIN_8 = 0x0100
+WIN_9 = 0x0200
+WIN_10 = 0x0400
+WIN_11 = 0x0800
+WIN_12 = 0x1000
+WIN_13 = 0x2000
+WIN_14 = 0x4000
+WIN_15 = 0x8000
+
+
+--GV索引字符串
+local GVstr = {
+ "State_Index_U",
+ "State_Index_U_Elapse",
+ "State_Index_N",
+ "State_Index_N_Elapse",
+ "NC_ARRAY_u8_0",
+ "NC_ARRAY_u8_01",
+ "NC_ARRAY_u8_1",
+ "NC_ARRAY_u8_11",
+ "NC_ARRAY_u8_2",
+ "MK32_Key.RxIndex",
+ "MK32_Key.CH0_RY_H",
+ "MK32_Key.CH1_RY_V",
+ "MK32_Key.CH2_LY_V",
+ "MK32_Key.CH3_LY_H",
+ "MK32_Key.CH4_SA",
+ "MK32_Key.CH5_SB",
+ "MK32_Key.CH6_SC",
+ "MK32_Key.CH7_SD",
+ "MK32_Key.CH8_SE",
+ "MK32_Key.CH9_SF",
+ "MK32_Key.CH10_LD1",
+ "MK32_Key.CH11_RD1",
+ "MK32_Key.CH12_S1",
+ "MK32_Key.CH13_S2",
+ "MK32_Key.CH14_LT",
+ "MK32_Key.CH15_RT",
+ "MK32_Key.IsOnline",
+ "Motor_P[0]MotorID",
+ "Motor_P[0]RxIndex",
+ "Motor_P[0]Run_Mode",
+ "Motor_P[0]Current",
+ "Motor_P[0]Target_Current",
+ "Motor_P[0]Velcity",
+ "Motor_P[0]Target_Velcity",
+ "Motor_P[0]Position",
+ "Motor_P[0]Target_Position",
+ "Motor_P[0]ERROR_Flag",
+ "Motor_P[0]Temperature_Motor",
+ "Motor_P[0]Temperature_PCB",
+ "Motor_P[1]MotorID",
+ "Motor_P[1]RxIndex",
+ "Motor_P[1]Run_Mode",
+ "Motor_P[1]Current",
+ "Motor_P[1]Target_Current",
+ "Motor_P[1]Velcity",
+ "Motor_P[1]Target_Velcity",
+ "Motor_P[1]Position",
+ "Motor_P[1]Target_Position",
+ "Motor_P[1]ERROR_Flag",
+ "Motor_P[1]Temperature_Motor",
+ "Motor_P[1]Temperature_PCB",
+ "Motor_P[2]MotorID",
+ "Motor_P[2]RxIndex",
+ "Motor_P[2]Run_Mode",
+ "Motor_P[2]Current",
+ "Motor_P[2]Target_Current",
+ "Motor_P[2]Velcity",
+ "Motor_P[2]Target_Velcity",
+ "Motor_P[2]Position",
+ "Motor_P[2]Target_Position",
+ "Motor_P[2]ERROR_Flag",
+ "Motor_P[2]Temperature_Motor",
+ "Motor_P[2]Temperature_PCB"
+}
+
+--CAN 解码函数,返回的字符串将展示到数据窗口
+--id 帧ID
+--std_ext 0表示标准帧, 1表示扩展帧
+--data_remote 0表示数据帧, 1表示远程帧
+--datalen 数据长度,字节
+--data_bin 二进制数据
+--函数返回: ret1解码字符串 , ret2分窗控制字, 波形数据字符串
+function can_decoder(id, std_ext, data_remote, datalen, data_bin)
+ local ret1 = "" --返回值1 解码显示结果
+ local ret2 = 0 --返回值2 分窗标志
+ local bin = {}
+ local i
+ local str_wave = ""
+
+ local _index = 0
+ local _value = 0
+ --local a_string = string.pack(">i2", your_integer)
+ --local an_integer = string.unpack(">i2", a_string, start) 将二进制字符串转换为数字类型,从第start个字符开始,<小端 >大端,类型i2,长度2
+
+ --#将字符串转换到整数数组存放
+ for i = 1,#data_bin,1 do
+ bin[i] = tonumber(string.byte(data_bin, i,i))
+ end
+
+ --计算解码结果,将显示在数据包后面
+ if (id == 0x120) then
+ _index = string.unpack("> 0) & 0xFF)
+byte1 = ((CV_Index >> 8) & 0xFF)
+
+byte2 = ((CV_value >> 0) & 0xFF)
+byte3 = ((CV_value >> 8) & 0xFF)
+byte4 = ((CV_value >> 16) & 0xFF)
+byte5 = ((CV_value >> 24) & 0xFF)
+
+str= string.format("%c%c%c%c%c%c%c%c", byte0, byte1, byte2, byte3, byte4, byte5, byte6, byte7)
+
+can_bus("send", 0, 0, can_id, str)
+-------------------------------------------------------
+-- 璇诲彇CV鐨勫
+-------------------------------------------------------
+local CV_Index = 0
+
+local str
+local can_id = 0x121
+local byte0 = 0x00
+local byte1 = 0x00
+local byte2 = 0x00
+local byte3 = 0x00
+local byte4 = 0x00
+local byte5 = 0x00
+local byte6 = 0x00
+local byte7 = 0x00
+
+print("璇诲彇CV鐨勫")
+can_bus("open", 0, 8, 500000, 500000)
+
+byte0 = ((CV_Index >> 0) & 0xFF)
+byte1 = ((CV_Index >> 8) & 0xFF)
+
+str= string.format("%c%c%c%c%c%c%c%c", byte0, byte1, byte2, byte3, byte4, byte5, byte6, byte7)
+
+can_bus("send", 0, 0, can_id, str)
+
+-------------------------------------------------------
+-- 璇诲彇GV
+-------------------------------------------------------
+local GV_Index = 0
+local GV_Length = 1
+local GV_config = 1
+
+local str
+local can_id = 0x130
+local byte0 = 0x00
+local byte1 = 0x00
+local byte2 = 0x00
+local byte3 = 0x00
+local byte4 = 0x00
+local byte5 = 0x00
+local byte6 = 0x00
+local byte7 = 0x00
+
+print("璇诲彇GV鐨勫")
+can_bus("open", 0, 8, 500000, 500000)
+
+byte0 = ((GV_Index >> 0) & 0xFF)
+byte1 = ((GV_Index >> 8) & 0xFF)
+
+byte2 = ((GV_Length >> 0) & 0xFF)
+byte3 = ((GV_Length >> 8) & 0xFF)
+
+byte4 = ((GV_config >> 0) & 0xFF)
+
+str= string.format("%c%c%c%c%c%c%c%c", byte0, byte1, byte2, byte3, byte4, byte5, byte6, byte7)
+
+can_bus("send", 0, 0, can_id, str)
\ No newline at end of file
diff --git a/protobuf bat.txt b/protobuf bat.txt
new file mode 100644
index 0000000..d12559a
--- /dev/null
+++ b/protobuf bat.txt
@@ -0,0 +1,5 @@
+proto-generator-bin\protoc --nanopb_out=. Protobuf\student.proto
+proto-generator-bin\protoc --nanopb_out=. Protobuf\*.proto
+
+
+..\proto-generator-bin\protoc --nanopb_out=. *.proto
\ No newline at end of file