5 Commits

28 changed files with 10918 additions and 9919 deletions

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

View File

@ -1473,6 +1473,16 @@
) )
(uuid "d3b31b79-911b-4ab7-9df8-99c01e82b5e4") (uuid "d3b31b79-911b-4ab7-9df8-99c01e82b5e4")
) )
(text "0603L050SLYR\n6V\n0,5 A\npdy Fuse"
(exclude_from_sim no)
(at 119.126 109.728 0)
(effects
(font
(size 1.27 1.27)
)
)
(uuid "1ef5743a-7927-4250-8a14-2ce22e794e83")
)
(symbol (symbol
(lib_id "power:+3.3V") (lib_id "power:+3.3V")
(at 175.26 97.79 0) (at 175.26 97.79 0)

View File

@ -104,7 +104,7 @@
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.floatabi.366198504" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.floatabi" useByScannerDiscovery="true" value="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.floatabi.value.hard" valueType="enumerated"/> <option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.floatabi.366198504" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.floatabi" useByScannerDiscovery="true" value="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.floatabi.value.hard" valueType="enumerated"/>
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_board.258240924" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_board" useByScannerDiscovery="false" value="genericBoard" valueType="string"/> <option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_board.258240924" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_board" useByScannerDiscovery="false" value="genericBoard" valueType="string"/>
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.defaults.1697577079" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.defaults" useByScannerDiscovery="false" value="com.st.stm32cube.ide.common.services.build.inputs.revA.1.0.6 || Release || false || Executable || com.st.stm32cube.ide.mcu.gnu.managedbuild.option.toolchain.value.workspace || STM32F302CBTx || 0 || 0 || arm-none-eabi- || ${gnu_tools_for_stm32_compiler_path} || ../Core/Inc | ../Drivers/STM32F3xx_HAL_Driver/Inc | ../Drivers/STM32F3xx_HAL_Driver/Inc/Legacy | ../Drivers/CMSIS/Device/ST/STM32F3xx/Include | ../Drivers/CMSIS/Include || || || USE_HAL_DRIVER | STM32F302xC || || Drivers | Core/Startup | Core || || || ${workspace_loc:/${ProjName}/STM32F302CBTX_FLASH.ld} || true || NonSecure || || secure_nsclib.o || || None || || || " valueType="string"/> <option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.defaults.1697577079" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.defaults" useByScannerDiscovery="false" value="com.st.stm32cube.ide.common.services.build.inputs.revA.1.0.6 || Release || false || Executable || com.st.stm32cube.ide.mcu.gnu.managedbuild.option.toolchain.value.workspace || STM32F302CBTx || 0 || 0 || arm-none-eabi- || ${gnu_tools_for_stm32_compiler_path} || ../Core/Inc | ../Drivers/STM32F3xx_HAL_Driver/Inc | ../Drivers/STM32F3xx_HAL_Driver/Inc/Legacy | ../Drivers/CMSIS/Device/ST/STM32F3xx/Include | ../Drivers/CMSIS/Include || || || USE_HAL_DRIVER | STM32F302xC || || Drivers | Core/Startup | Core || || || ${workspace_loc:/${ProjName}/STM32F302CBTX_FLASH.ld} || true || NonSecure || || secure_nsclib.o || || None || || || " valueType="string"/>
<option id="com.st.stm32cube.ide.mcu.debug.option.cpuclock.304454733" superClass="com.st.stm32cube.ide.mcu.debug.option.cpuclock" value="16" valueType="string"/> <option id="com.st.stm32cube.ide.mcu.debug.option.cpuclock.304454733" superClass="com.st.stm32cube.ide.mcu.debug.option.cpuclock" useByScannerDiscovery="false" value="16" valueType="string"/>
<targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.ELF" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.targetplatform.2074569978" isAbstract="false" osList="all" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.targetplatform"/> <targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.ELF" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.targetplatform.2074569978" isAbstract="false" osList="all" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.targetplatform"/>
<builder buildPath="${workspace_loc:/Dashboard}/Release" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.builder.371325326" managedBuildOn="true" name="Gnu Make Builder.Release" parallelBuildOn="true" parallelizationNumber="optimal" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.builder"/> <builder buildPath="${workspace_loc:/Dashboard}/Release" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.builder.371325326" managedBuildOn="true" name="Gnu Make Builder.Release" parallelBuildOn="true" parallelizationNumber="optimal" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.builder"/>
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.1524614832" name="MCU/MPU GCC Assembler" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler"> <tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.1524614832" name="MCU/MPU GCC Assembler" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler">
@ -173,4 +173,5 @@
<autodiscovery enabled="false" problemReportingEnabled="true" selectedProfileId=""/> <autodiscovery enabled="false" problemReportingEnabled="true" selectedProfileId=""/>
</scannerConfigBuildInfo> </scannerConfigBuildInfo>
</storageModule> </storageModule>
<storageModule moduleId="refreshScope"/>
</cproject> </cproject>

View File

@ -1,3 +1,11 @@
[PreviousLibFiles]
LibFiles=Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_hal_can.h;Drivers\STM32F3xx_HAL_Driver\Inc\Legacy\stm32_hal_legacy.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_hal.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_hal_def.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_hal_rcc.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_hal_rcc_ex.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_ll_bus.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_ll_rcc.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_ll_crs.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_ll_system.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_ll_utils.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_hal_gpio.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_hal_gpio_ex.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_ll_gpio.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_hal_dma_ex.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_hal_dma.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_ll_dma.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_hal_cortex.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_ll_cortex.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_hal_pwr.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_hal_pwr_ex.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_ll_pwr.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_hal_flash.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_hal_flash_ex.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_hal_i2c.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_hal_i2c_ex.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_hal_exti.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_ll_exti.h;Drivers\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_can.c;Drivers\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal.c;Drivers\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_rcc.c;Drivers\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_rcc_ex.c;Drivers\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_gpio.c;Drivers\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_dma.c;Drivers\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_cortex.c;Drivers\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_pwr.c;Drivers\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_pwr_ex.c;Drivers\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_flash.c;Drivers\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_flash_ex.c;Drivers\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_i2c.c;Drivers\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_i2c_ex.c;Drivers\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_exti.c;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_hal_can.h;Drivers\STM32F3xx_HAL_Driver\Inc\Legacy\stm32_hal_legacy.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_hal.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_hal_def.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_hal_rcc.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_hal_rcc_ex.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_ll_bus.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_ll_rcc.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_ll_crs.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_ll_system.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_ll_utils.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_hal_gpio.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_hal_gpio_ex.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_ll_gpio.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_hal_dma_ex.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_hal_dma.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_ll_dma.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_hal_cortex.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_ll_cortex.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_hal_pwr.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_hal_pwr_ex.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_ll_pwr.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_hal_flash.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_hal_flash_ex.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_hal_i2c.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_hal_i2c_ex.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_hal_exti.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_ll_exti.h;Drivers\CMSIS\Device\ST\STM32F3xx\Include\stm32f302xc.h;Drivers\CMSIS\Device\ST\STM32F3xx\Include\stm32f3xx.h;Drivers\CMSIS\Device\ST\STM32F3xx\Include\system_stm32f3xx.h;Drivers\CMSIS\Device\ST\STM32F3xx\Include\system_stm32f3xx.h;Drivers\CMSIS\Device\ST\STM32F3xx\Source\Templates\system_stm32f3xx.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;
[PreviousUsedCubeIDEFiles]
SourceFiles=Core\Src\main.c;Core\Src\stm32f3xx_it.c;Core\Src\stm32f3xx_hal_msp.c;Drivers\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_can.c;Drivers\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal.c;Drivers\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_rcc.c;Drivers\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_rcc_ex.c;Drivers\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_gpio.c;Drivers\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_dma.c;Drivers\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_cortex.c;Drivers\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_pwr.c;Drivers\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_pwr_ex.c;Drivers\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_flash.c;Drivers\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_flash_ex.c;Drivers\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_i2c.c;Drivers\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_i2c_ex.c;Drivers\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_exti.c;Drivers\CMSIS\Device\ST\STM32F3xx\Source\Templates\system_stm32f3xx.c;Core\Src\system_stm32f3xx.c;Drivers\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_can.c;Drivers\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal.c;Drivers\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_rcc.c;Drivers\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_rcc_ex.c;Drivers\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_gpio.c;Drivers\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_dma.c;Drivers\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_cortex.c;Drivers\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_pwr.c;Drivers\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_pwr_ex.c;Drivers\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_flash.c;Drivers\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_flash_ex.c;Drivers\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_i2c.c;Drivers\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_i2c_ex.c;Drivers\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_exti.c;Drivers\CMSIS\Device\ST\STM32F3xx\Source\Templates\system_stm32f3xx.c;Core\Src\system_stm32f3xx.c;;;
HeaderPath=Drivers\STM32F3xx_HAL_Driver\Inc;Drivers\STM32F3xx_HAL_Driver\Inc\Legacy;Drivers\CMSIS\Device\ST\STM32F3xx\Include;Drivers\CMSIS\Include;Core\Inc;
CDefines=USE_HAL_DRIVER;STM32F302xC;USE_HAL_DRIVER;USE_HAL_DRIVER;
[PreviousGenFiles] [PreviousGenFiles]
AdvancedFolderStructure=true AdvancedFolderStructure=true
HeaderFileListSize=3 HeaderFileListSize=3
@ -15,11 +23,3 @@ SourceFolderListSize=1
SourcePath#0=..\Core\Src SourcePath#0=..\Core\Src
SourceFiles=; SourceFiles=;
[PreviousLibFiles]
LibFiles=Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_hal_can.h;Drivers\STM32F3xx_HAL_Driver\Inc\Legacy\stm32_hal_legacy.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_hal.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_hal_def.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_hal_rcc.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_hal_rcc_ex.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_ll_bus.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_ll_rcc.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_ll_crs.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_ll_system.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_ll_utils.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_hal_gpio.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_hal_gpio_ex.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_ll_gpio.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_hal_dma_ex.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_hal_dma.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_ll_dma.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_hal_cortex.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_ll_cortex.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_hal_pwr.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_hal_pwr_ex.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_ll_pwr.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_hal_flash.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_hal_flash_ex.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_hal_i2c.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_hal_i2c_ex.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_hal_exti.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_ll_exti.h;Drivers\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_can.c;Drivers\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal.c;Drivers\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_rcc.c;Drivers\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_rcc_ex.c;Drivers\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_gpio.c;Drivers\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_dma.c;Drivers\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_cortex.c;Drivers\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_pwr.c;Drivers\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_pwr_ex.c;Drivers\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_flash.c;Drivers\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_flash_ex.c;Drivers\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_i2c.c;Drivers\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_i2c_ex.c;Drivers\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_exti.c;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_hal_can.h;Drivers\STM32F3xx_HAL_Driver\Inc\Legacy\stm32_hal_legacy.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_hal.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_hal_def.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_hal_rcc.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_hal_rcc_ex.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_ll_bus.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_ll_rcc.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_ll_crs.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_ll_system.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_ll_utils.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_hal_gpio.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_hal_gpio_ex.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_ll_gpio.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_hal_dma_ex.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_hal_dma.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_ll_dma.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_hal_cortex.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_ll_cortex.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_hal_pwr.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_hal_pwr_ex.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_ll_pwr.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_hal_flash.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_hal_flash_ex.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_hal_i2c.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_hal_i2c_ex.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_hal_exti.h;Drivers\STM32F3xx_HAL_Driver\Inc\stm32f3xx_ll_exti.h;Drivers\CMSIS\Device\ST\STM32F3xx\Include\stm32f302xc.h;Drivers\CMSIS\Device\ST\STM32F3xx\Include\stm32f3xx.h;Drivers\CMSIS\Device\ST\STM32F3xx\Include\system_stm32f3xx.h;Drivers\CMSIS\Device\ST\STM32F3xx\Include\system_stm32f3xx.h;Drivers\CMSIS\Device\ST\STM32F3xx\Source\Templates\system_stm32f3xx.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;
[PreviousUsedCubeIDEFiles]
SourceFiles=Core\Src\main.c;Core\Src\stm32f3xx_it.c;Core\Src\stm32f3xx_hal_msp.c;Drivers\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_can.c;Drivers\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal.c;Drivers\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_rcc.c;Drivers\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_rcc_ex.c;Drivers\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_gpio.c;Drivers\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_dma.c;Drivers\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_cortex.c;Drivers\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_pwr.c;Drivers\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_pwr_ex.c;Drivers\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_flash.c;Drivers\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_flash_ex.c;Drivers\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_i2c.c;Drivers\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_i2c_ex.c;Drivers\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_exti.c;Drivers\CMSIS\Device\ST\STM32F3xx\Source\Templates\system_stm32f3xx.c;Core\Src\system_stm32f3xx.c;Drivers\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_can.c;Drivers\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal.c;Drivers\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_rcc.c;Drivers\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_rcc_ex.c;Drivers\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_gpio.c;Drivers\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_dma.c;Drivers\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_cortex.c;Drivers\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_pwr.c;Drivers\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_pwr_ex.c;Drivers\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_flash.c;Drivers\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_flash_ex.c;Drivers\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_i2c.c;Drivers\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_i2c_ex.c;Drivers\STM32F3xx_HAL_Driver\Src\stm32f3xx_hal_exti.c;Drivers\CMSIS\Device\ST\STM32F3xx\Source\Templates\system_stm32f3xx.c;Core\Src\system_stm32f3xx.c;;;
HeaderPath=Drivers\STM32F3xx_HAL_Driver\Inc;Drivers\STM32F3xx_HAL_Driver\Inc\Legacy;Drivers\CMSIS\Device\ST\STM32F3xx\Include;Drivers\CMSIS\Include;Core\Inc;
CDefines=USE_HAL_DRIVER;STM32F302xC;USE_HAL_DRIVER;USE_HAL_DRIVER;

68
Software/Core/Inc/can.h Normal file
View File

@ -0,0 +1,68 @@
/*
* can.h
*
* Created on: Jun 12, 2025
* Author: janek
*/
#ifndef INC_CAN_H_
#define INC_CAN_H_
#include "can_halal.h"
#define CAN_ID_TX 0x420
#define CAN_ID_RX_R2D 0x410
#define CAN_ID_RX_AMS 0x00A
typedef union {
struct {
uint8_t ts_state : 1;
uint8_t NC1 : 1;
uint8_t NC2 : 1;
uint8_t NC3 : 1;
uint8_t NC4 : 1;
uint8_t NC5 : 1;
uint8_t NC6 : 1;
uint8_t sdc_closed : 1;
};
uint8_t ams_rx;
} ams_info;
typedef union {
struct {
uint8_t ts_green : 1;
uint8_t imd_error : 1;
uint8_t ams_error : 1;
uint8_t NC1 : 1;
uint8_t NC2 : 1;
uint8_t NC3 : 1;
uint8_t NC4 : 1;
uint8_t NC5 : 1;
};
uint8_t ams_led;
}led_info;
typedef union {
struct {
ams_info ams_status;
led_info led_status;
};
uint16_t ams_bitmask;
} rx_acc;
typedef union{
struct{
uint8_t r2d : 1;
uint8_t tson : 1;
uint8_t racemode : 1;
uint8_t sdc_in : 1;
uint8_t sdc_out : 1;
};
uint8_t dash_send;
}dash_tx_t;
void can_init(CAN_HandleTypeDef* hcan);
void can_send();
void can_rxupdateFrame();
#endif /* INC_CAN_H_ */

View File

@ -0,0 +1,72 @@
#ifndef CAN_HALAL_H
#define CAN_HALAL_H
// Define family macros if none are defined and we recognize a chip macro
#if !defined(STM32F3) && !defined(STM32H7) && !defined(STM32F0)
#if defined(STM32F302x6) || defined(STM32F302x8) || defined(STM32F302xB) || \
defined(STM32F302xC)
#define STM32F3
#endif
#if defined(STM32H7A3xx) || defined(STM32H723xx)
#define STM32H7
#endif
#if defined(STM32F042x6)
#define STM32F0
#endif
#endif
#if defined(STM32F3)
#include "stm32f3xx_hal.h"
#define FTCAN_IS_BXCAN
#define FTCAN_NUM_FILTERS 13
#elif defined(STM32H7)
#include "stm32h7xx_hal.h"
#define FTCAN_IS_FDCAN
#ifndef FTCAN_NUM_FILTERS
#error "Please configure the number of filters in CubeMX, and then add a compiler define for FTCAN_NUM_FILTERS"
#endif
#elif defined(STM32F0)
#include "stm32f0xx_hal.h"
#define FTCAN_IS_BXCAN
#define FTCAN_NUM_FILTERS 13
#else
#error "Couldn't detect STM family"
#endif
#if defined(FTCAN_IS_BXCAN)
HAL_StatusTypeDef ftcan_init(CAN_HandleTypeDef *handle);
#elif defined(FTCAN_IS_FDCAN)
HAL_StatusTypeDef ftcan_init(FDCAN_HandleTypeDef *handle);
#else
#error "Unknown CAN peripheral"
#endif
HAL_StatusTypeDef ftcan_transmit(uint16_t id, const uint8_t *data,
size_t datalen);
HAL_StatusTypeDef ftcan_add_filter(uint16_t id, uint16_t mask);
/**
* Define this function to be notified of incoming CAN messages
*/
void ftcan_msg_received_cb(uint16_t id, size_t datalen, const uint8_t *data);
/**
* Read num_bytes bytes from a message (unmarshalled network byte order). The
* msg pointer is advanced by the corresponding number of bytes.
*
* Both methods return a 64-bit integer, but you can safely cast it to a smaller
* integer type.
*/
uint64_t ftcan_unmarshal_unsigned(const uint8_t **data, size_t num_bytes);
int64_t ftcan_unmarshal_signed(const uint8_t **data, size_t num_bytes);
/**
* Write num_bytes to a message (marshalled in network byte order). The pointer
* is advanced by the corresponding number of bytes and returned.
*/
uint8_t *ftcan_marshal_unsigned(uint8_t *data, uint64_t val, size_t num_bytes);
uint8_t *ftcan_marshal_signed(uint8_t *data, int64_t val, size_t num_bytes);
#endif // CAN_HALAL_H

View File

@ -46,7 +46,21 @@ extern "C" {
/* Exported macro ------------------------------------------------------------*/ /* Exported macro ------------------------------------------------------------*/
/* USER CODE BEGIN EM */ /* USER CODE BEGIN EM */
#define R2D_NONE 0x00
#define R2D_TSMS 0x01
#define R2D_TS_ACTIVE 0x02
#define R2D_RESETTING_NODES 0x03
#define R2D_RESETTING_COMMS 0x04
#define R2D_WAITING_INIT 0x05
#define R2D_INIT_STAGE1 0x06
#define R2D_INIT_STAGE2 0x07
#define R2D_INIT_SUCCESS 0x0F
#define TS_INACTIVE 0x00
#define TS_ACTIVE 0x01
#define TS_PRECHARGE 0x02
#define TS_DISCHARGE 0x03
#define TS_ERROR 0x04
/* USER CODE END EM */ /* USER CODE END EM */
/* Exported functions prototypes ---------------------------------------------*/ /* Exported functions prototypes ---------------------------------------------*/

View File

@ -81,7 +81,7 @@
* (when HSE is used as system clock source, directly or through the PLL). * (when HSE is used as system clock source, directly or through the PLL).
*/ */
#if !defined (HSE_VALUE) #if !defined (HSE_VALUE)
#define HSE_VALUE ((uint32_t)8000000) /*!< Value of the External oscillator in Hz */ #define HSE_VALUE ((uint32_t)16000000) /*!< Value of the External oscillator in Hz */
#endif /* HSE_VALUE */ #endif /* HSE_VALUE */
/** /**

36
Software/Core/Src/can.c Normal file
View File

@ -0,0 +1,36 @@
/*
* can.c
*
* Created on: Jun 12, 2025
* Author: janek
*/
#include "can.h"
rx_acc acc_status = {};
extern int ts_on;
extern int ams_last_tick;
extern int r2d_progress;
dash_tx_t dash_tx;
void can_init(CAN_HandleTypeDef* hcan){
ftcan_init(hcan);
ftcan_add_filter(0x00, 0x00); // no filter
}
void can_send(){
uint8_t data[1];
data[0] = dash_tx.dash_send;
ftcan_transmit(CAN_ID_TX, data, 1);
}
void ftcan_msg_received_cb(uint16_t id, size_t datalen, const uint8_t* data){
if(id == CAN_ID_RX_AMS){
ams_last_tick = HAL_GetTick();
acc_status.ams_status.ams_rx = data[0];
acc_status.led_status.ams_led = data[7];
}
if(id == CAN_ID_RX_R2D){
r2d_progress = data[1] & 0x0F;
}
}

View File

@ -0,0 +1,273 @@
#include "can_halal.h"
#include <string.h>
#if defined(FTCAN_IS_BXCAN)
static CAN_HandleTypeDef *hcan;
HAL_StatusTypeDef ftcan_init(CAN_HandleTypeDef *handle) {
hcan = handle;
HAL_StatusTypeDef status =
HAL_CAN_ActivateNotification(hcan, CAN_IT_RX_FIFO0_MSG_PENDING);
if (status != HAL_OK) {
return status;
}
return HAL_CAN_Start(hcan);
}
HAL_StatusTypeDef ftcan_transmit(uint16_t id, const uint8_t *data,
size_t datalen) {
static CAN_TxHeaderTypeDef header;
header.StdId = id;
header.IDE = CAN_ID_STD;
header.RTR = CAN_RTR_DATA;
header.DLC = datalen;
uint32_t mailbox;
return HAL_CAN_AddTxMessage(hcan, &header, data, &mailbox);
}
HAL_StatusTypeDef ftcan_add_filter(uint16_t id, uint16_t mask) {
static uint32_t next_filter_no = 0;
static CAN_FilterTypeDef filter;
if (next_filter_no % 2 == 0) {
filter.FilterIdHigh = id << 5;
filter.FilterMaskIdHigh = mask << 5;
filter.FilterIdLow = id << 5;
filter.FilterMaskIdLow = mask << 5;
} else {
// Leave high filter untouched from the last configuration
filter.FilterIdLow = id << 5;
filter.FilterMaskIdLow = mask << 5;
}
filter.FilterFIFOAssignment = CAN_FILTER_FIFO0;
filter.FilterBank = next_filter_no / 2;
if (filter.FilterBank > FTCAN_NUM_FILTERS + 1) {
return HAL_ERROR;
}
filter.FilterMode = CAN_FILTERMODE_IDMASK;
filter.FilterScale = CAN_FILTERSCALE_16BIT;
filter.FilterActivation = CAN_FILTER_ENABLE;
// Disable slave filters
// TODO: Some STM32 have multiple CAN peripherals, and one uses the slave
// filter bank
filter.SlaveStartFilterBank = FTCAN_NUM_FILTERS;
HAL_StatusTypeDef status = HAL_CAN_ConfigFilter(hcan, &filter);
if (status == HAL_OK) {
next_filter_no++;
}
return status;
}
void HAL_CAN_RxFifo0MsgPendingCallback(CAN_HandleTypeDef *handle) {
if (handle != hcan) {
return;
}
CAN_RxHeaderTypeDef header;
uint8_t data[8];
if (HAL_CAN_GetRxMessage(hcan, CAN_RX_FIFO0, &header, data) != HAL_OK) {
return;
}
if (header.IDE != CAN_ID_STD) {
return;
}
ftcan_msg_received_cb(header.StdId, header.DLC, data);
}
#elif defined(FTCAN_IS_FDCAN)
static FDCAN_HandleTypeDef *hcan;
HAL_StatusTypeDef ftcan_init(FDCAN_HandleTypeDef *handle) {
hcan = handle;
HAL_StatusTypeDef status =
HAL_FDCAN_ActivateNotification(hcan, FDCAN_IT_RX_FIFO0_NEW_MESSAGE, 0);
if (status != HAL_OK) {
return status;
}
// Reject non-matching messages
status =
HAL_FDCAN_ConfigGlobalFilter(hcan, FDCAN_REJECT, FDCAN_REJECT,
FDCAN_REJECT_REMOTE, FDCAN_REJECT_REMOTE);
if (status != HAL_OK) {
return status;
}
return HAL_FDCAN_Start(hcan);
}
HAL_StatusTypeDef ftcan_transmit(uint16_t id, const uint8_t *data,
size_t datalen) {
static FDCAN_TxHeaderTypeDef header;
header.Identifier = id;
header.IdType = FDCAN_STANDARD_ID;
header.TxFrameType = FDCAN_DATA_FRAME;
switch (datalen) {
case 0:
header.DataLength = FDCAN_DLC_BYTES_0;
break;
case 1:
header.DataLength = FDCAN_DLC_BYTES_1;
break;
case 2:
header.DataLength = FDCAN_DLC_BYTES_2;
break;
case 3:
header.DataLength = FDCAN_DLC_BYTES_3;
break;
case 4:
header.DataLength = FDCAN_DLC_BYTES_4;
break;
case 5:
header.DataLength = FDCAN_DLC_BYTES_5;
break;
case 6:
header.DataLength = FDCAN_DLC_BYTES_6;
break;
case 7:
header.DataLength = FDCAN_DLC_BYTES_7;
break;
case 8:
default:
header.DataLength = FDCAN_DLC_BYTES_8;
break;
}
header.ErrorStateIndicator = FDCAN_ESI_PASSIVE;
header.BitRateSwitch = FDCAN_BRS_OFF;
header.FDFormat = FDCAN_CLASSIC_CAN;
header.TxEventFifoControl = FDCAN_NO_TX_EVENTS;
// HAL_FDCAN_AddMessageToTxFifoQ doesn't modify the data, but it's not marked
// as const for some reason.
uint8_t *data_nonconst = (uint8_t *)data;
return HAL_FDCAN_AddMessageToTxFifoQ(hcan, &header, data_nonconst);
}
HAL_StatusTypeDef ftcan_add_filter(uint16_t id, uint16_t mask) {
static uint32_t next_filter_no = 0;
static FDCAN_FilterTypeDef filter;
filter.IdType = FDCAN_STANDARD_ID;
filter.FilterIndex = next_filter_no;
if (filter.FilterIndex > FTCAN_NUM_FILTERS + 1) {
return HAL_ERROR;
}
filter.FilterType = FDCAN_FILTER_MASK;
filter.FilterConfig = FDCAN_FILTER_TO_RXFIFO0;
filter.FilterID1 = id;
filter.FilterID2 = mask;
HAL_StatusTypeDef status = HAL_FDCAN_ConfigFilter(hcan, &filter);
if (status == HAL_OK) {
next_filter_no++;
}
return status;
}
void HAL_FDCAN_RxFifo0Callback(FDCAN_HandleTypeDef *handle,
uint32_t RxFifo0ITs) {
if (handle != hcan || (RxFifo0ITs & FDCAN_IT_RX_FIFO0_NEW_MESSAGE) == RESET) {
return;
}
static FDCAN_RxHeaderTypeDef header;
static uint8_t data[8];
if (HAL_FDCAN_GetRxMessage(hcan, FDCAN_RX_FIFO0, &header, data) != HAL_OK) {
return;
}
if (header.FDFormat != FDCAN_CLASSIC_CAN ||
header.RxFrameType != FDCAN_DATA_FRAME ||
header.IdType != FDCAN_STANDARD_ID) {
return;
}
size_t datalen;
switch (header.DataLength) {
case FDCAN_DLC_BYTES_0:
datalen = 0;
break;
case FDCAN_DLC_BYTES_1:
datalen = 1;
break;
case FDCAN_DLC_BYTES_2:
datalen = 2;
break;
case FDCAN_DLC_BYTES_3:
datalen = 3;
break;
case FDCAN_DLC_BYTES_4:
datalen = 4;
break;
case FDCAN_DLC_BYTES_5:
datalen = 5;
break;
case FDCAN_DLC_BYTES_6:
datalen = 6;
break;
case FDCAN_DLC_BYTES_7:
datalen = 7;
break;
case FDCAN_DLC_BYTES_8:
datalen = 8;
break;
default:
return;
}
ftcan_msg_received_cb(header.Identifier, datalen, data);
}
#endif
__weak void ftcan_msg_received_cb(uint16_t id, size_t datalen,
const uint8_t *data) {}
uint64_t ftcan_unmarshal_unsigned(const uint8_t **data_ptr, size_t num_bytes) {
if (num_bytes > 8) {
num_bytes = 8;
}
const uint8_t *data = *data_ptr;
uint64_t result = 0;
for (size_t i = 0; i < num_bytes; i++) {
result <<= 8;
result |= data[i];
}
*data_ptr += num_bytes;
return result;
}
int64_t ftcan_unmarshal_signed(const uint8_t **data_ptr, size_t num_bytes) {
if (num_bytes > 8) {
num_bytes = 8;
}
uint64_t result_unsigned = ftcan_unmarshal_unsigned(data_ptr, num_bytes);
// Sign extend by shifting left, then copying to a signed int and shifting
// back to the right
size_t diff_to_64 = 64 - num_bytes * 8;
result_unsigned <<= diff_to_64;
int64_t result;
memcpy(&result, &result_unsigned, 8);
return result >> diff_to_64;
}
uint8_t *ftcan_marshal_unsigned(uint8_t *data, uint64_t val, size_t num_bytes) {
if (num_bytes > 8) {
num_bytes = 8;
}
for (int i = num_bytes - 1; i >= 0; i--) {
data[i] = val & 0xFF;
val >>= 8;
}
return data + num_bytes;
}
uint8_t *ftcan_marshal_signed(uint8_t *data, int64_t val, size_t num_bytes) {
return ftcan_marshal_unsigned(data, val, num_bytes);
}

View File

@ -21,54 +21,21 @@
/* Private includes ----------------------------------------------------------*/ /* Private includes ----------------------------------------------------------*/
/* USER CODE BEGIN Includes */ /* USER CODE BEGIN Includes */
#include "can.h"
/* USER CODE END Includes */ /* USER CODE END Includes */
/* Private typedef -----------------------------------------------------------*/ /* Private typedef -----------------------------------------------------------*/
/* USER CODE BEGIN PTD */ /* USER CODE BEGIN PTD */
typedef struct {
int r2d : 1;
int tson : 1;
int racemode : 1;
int sdc_in : 1;
int sdc_out : 1;
} dash_tx_t;
typedef enum {
TS_INACTIVE = 0,
TS_ACTIVE = 1,
TS_PRECHARGE = 2,
TS_DISCHARGE = 3,
TS_ERROR = 4,
} ams_state_t;
typedef enum {
R2D_NONE = 0,
R2D_TSMS = 1,
R2D_TSActive = 2,
R2D_Resetting_Nodes = 3,
R2D_Resetting_Comms = 4,
R2D_Waiting_Init = 5,
R2D_Init_Stage1 = 6,
R2D_Init_Stage2 = 7,
R2D_Success = 0xF,
} r2d_progress_t;
typedef struct {
ams_state_t ams_state;
int imd_ok;
int sdc_closed;
r2d_progress_t r2d_progress;
} dash_rx_t;
/* USER CODE END PTD */ /* USER CODE END PTD */
/* Private define ------------------------------------------------------------*/ /* Private define ------------------------------------------------------------*/
/* USER CODE BEGIN PD */ /* USER CODE BEGIN PD */
#define CAN_ID_TX 0x420 /* USER CODE END PTD */
#define CAN_ID_RX_R2D 0x410
#define CAN_ID_RX_AMS 0x00A /* Private define ------------------------------------------------------------*/
/* USER CODE BEGIN PD */
/* USER CODE END PD */ /* USER CODE END PD */
/* Private macro -------------------------------------------------------------*/ /* Private macro -------------------------------------------------------------*/
@ -80,15 +47,6 @@ typedef struct {
CAN_HandleTypeDef hcan; CAN_HandleTypeDef hcan;
/* USER CODE BEGIN PV */ /* USER CODE BEGIN PV */
dash_tx_t dash_tx;
CAN_TxHeaderTypeDef txHeader;
uint32_t txMailbox;
dash_rx_t dash_rx;
uint32_t ams_last_tick = 0;
uint32_t last_send_can_tick = 0;
/* USER CODE END PV */ /* USER CODE END PV */
@ -102,7 +60,14 @@ static void MX_CAN_Init(void);
/* Private user code ---------------------------------------------------------*/ /* Private user code ---------------------------------------------------------*/
/* USER CODE BEGIN 0 */ /* USER CODE BEGIN 0 */
extern dash_tx_t dash_tx;
extern rx_acc acc_status;
uint8_t sdc_closed;
uint8_t r2d_progress;
uint32_t blink_tick_tson;
uint32_t blink_tick_r2d;
uint32_t ams_last_tick;
uint32_t can_send_tick;
/* USER CODE END 0 */ /* USER CODE END 0 */
/** /**
@ -136,38 +101,12 @@ int main(void)
MX_GPIO_Init(); MX_GPIO_Init();
MX_CAN_Init(); MX_CAN_Init();
/* USER CODE BEGIN 2 */ /* USER CODE BEGIN 2 */
can_init(&hcan);
txHeader.IDE = CAN_ID_STD; sdc_closed = 0;
txHeader.StdId = CAN_ID_TX; blink_tick_tson = HAL_GetTick();
txHeader.RTR = CAN_RTR_DATA; blink_tick_r2d = HAL_GetTick();
txHeader.DLC = 1; can_send_tick = HAL_GetTick();
if (HAL_CAN_Start(&hcan) != HAL_OK)
Error_Handler();
CAN_FilterTypeDef canfilterconfig;
canfilterconfig.FilterActivation = CAN_FILTER_ENABLE;
canfilterconfig.FilterBank = 0;
canfilterconfig.FilterFIFOAssignment = CAN_FILTER_FIFO0;
canfilterconfig.FilterIdHigh = CAN_ID_RX_AMS << (16 - 11);
canfilterconfig.FilterIdLow = CAN_ID_RX_R2D << (16 - 11);
canfilterconfig.FilterMaskIdHigh = 0x7FF << (16 - 11);
canfilterconfig.FilterMaskIdLow = 0x7FF << (16 - 11);
canfilterconfig.FilterMode = CAN_FILTERMODE_IDMASK;
canfilterconfig.FilterScale = CAN_FILTERSCALE_32BIT;
canfilterconfig.SlaveStartFilterBank = 14;
if (HAL_CAN_ConfigFilter(&hcan, &canfilterconfig) != HAL_OK) {
Error_Handler();
}
if (HAL_CAN_ActivateNotification(&hcan, CAN_IT_RX_FIFO0_MSG_PENDING) != HAL_OK)
Error_Handler();
// blink flags
int blink_state = 0;
/* USER CODE END 2 */ /* USER CODE END 2 */
@ -184,82 +123,68 @@ int main(void)
dash_tx.sdc_out = HAL_GPIO_ReadPin(SDC_Out_3V3_GPIO_Port, SDC_Out_3V3_Pin); dash_tx.sdc_out = HAL_GPIO_ReadPin(SDC_Out_3V3_GPIO_Port, SDC_Out_3V3_Pin);
dash_tx.racemode = HAL_GPIO_ReadPin(RMode_Out_3V3_GPIO_Port, RMode_Out_3V3_Pin); dash_tx.racemode = HAL_GPIO_ReadPin(RMode_Out_3V3_GPIO_Port, RMode_Out_3V3_Pin);
if ((HAL_GetTick() - last_send_can_tick ) > 200) {
if (HAL_CAN_AddTxMessage(&hcan, &txHeader, (uint8_t*) &dash_tx, &txMailbox) != HAL_OK) {
Error_Handler();
}
last_send_can_tick = HAL_GetTick();
}
// Inverted in hardware // Inverted in hardware
if ((HAL_GetTick() - ams_last_tick) < 150) { //master sendet aller 100ms, fürs testen erstmal auf 150ms gesetzt -> kann später wieder runter if ((HAL_GetTick() - ams_last_tick) < 350) { //master sendet aller 100ms, fürs testen erstmal auf 150ms gesetzt -> kann später wieder runter
HAL_GPIO_WritePin(IMD_LED_GPIO_Port, IMD_LED_Pin, dash_rx.imd_ok); HAL_GPIO_WritePin(IMD_LED_GPIO_Port, IMD_LED_Pin, !acc_status.led_status.imd_error);
HAL_GPIO_WritePin(AMS_LED_GPIO_Port, AMS_LED_Pin, dash_rx.ams_state != TS_ERROR); HAL_GPIO_WritePin(AMS_LED_GPIO_Port, AMS_LED_Pin, !acc_status.led_status.ams_error);
HAL_GPIO_WritePin(TSOFF_LED_GPIO_Port, TSOFF_LED_Pin, dash_rx.ams_state == TS_INACTIVE); HAL_GPIO_WritePin(TSOFF_LED_GPIO_Port, TSOFF_LED_Pin,acc_status.led_status.ts_green);
} else { } else {
// Safe state: Error LEDs on, TSOFF off // Safe state: Error LEDs on, TSOFF off
HAL_GPIO_WritePin(IMD_LED_GPIO_Port, IMD_LED_Pin, 0); HAL_GPIO_WritePin(IMD_LED_GPIO_Port, IMD_LED_Pin, 0);
HAL_GPIO_WritePin(AMS_LED_GPIO_Port, AMS_LED_Pin, 0); HAL_GPIO_WritePin(AMS_LED_GPIO_Port, AMS_LED_Pin, 0);
HAL_GPIO_WritePin(TSOFF_LED_GPIO_Port, TSOFF_LED_Pin, 0); HAL_GPIO_WritePin(TSOFF_LED_GPIO_Port, TSOFF_LED_Pin, 0);
} }
int r = 0, g = 0, b = 0; int r = 0, g = 0, b = 0;
int br = 0, bg = 0, bb = 0; int br = 0, bg = 0, bb = 0;
if (dash_rx.sdc_closed) { if(acc_status.ams_status.sdc_closed == 1){
switch (dash_rx.ams_state) { if(acc_status.ams_status.ts_state == TS_INACTIVE){
case TS_INACTIVE: r = g = 1;
r = g = 1;
break;
case TS_PRECHARGE:
// Gelb blink
br = bg = 1;
break;
case TS_ACTIVE:
g = 1;
break;
case TS_DISCHARGE:
// Blau blink
bb = 1;
break;
default:
r = 1;
break;
} }
} else { if(acc_status.ams_status.ts_state == TS_PRECHARGE){
b = 1; br = bg = 1;
}
if(acc_status.ams_status.ts_state == TS_ACTIVE){
g = 1;
}
if(acc_status.ams_status.ts_state == TS_DISCHARGE){
br = bb = 1;
}
if(acc_status.ams_status.ts_state == TS_ERROR){
br = 1;
}
}
else{
b = r = 1;
} }
HAL_GPIO_WritePin(TSON_R_GPIO_Port, TSON_R_Pin, r); HAL_GPIO_WritePin(TSON_R_GPIO_Port, TSON_R_Pin, r);
HAL_GPIO_WritePin(TSON_G_GPIO_Port, TSON_G_Pin, g); HAL_GPIO_WritePin(TSON_G_GPIO_Port, TSON_G_Pin, g);
HAL_GPIO_WritePin(TSON_B_GPIO_Port, TSON_B_Pin, b); HAL_GPIO_WritePin(TSON_B_GPIO_Port, TSON_B_Pin, b);
if (br || bg || bb) { if ((br || bg || bb) && ((HAL_GetTick() - blink_tick_tson) > 1000u)) {
HAL_GPIO_WritePin(TSON_R_GPIO_Port, TSON_R_Pin, br && blink_state); if (br) { HAL_GPIO_TogglePin(TSON_R_GPIO_Port, TSON_R_Pin); }
HAL_GPIO_WritePin(TSON_G_GPIO_Port, TSON_G_Pin, bg && blink_state); if (bg) { HAL_GPIO_TogglePin(TSON_G_GPIO_Port, TSON_G_Pin); }
HAL_GPIO_WritePin(TSON_B_GPIO_Port, TSON_B_Pin, bb && blink_state); if (bb) { HAL_GPIO_TogglePin(TSON_B_GPIO_Port, TSON_B_Pin); }
blink_tick_tson = HAL_GetTick();
} }
r = g = b = 0; r = g = b = 0;
br = bg = bb = 0; br = bg = bb = 0;
if (dash_rx.ams_state == TS_ACTIVE) { if (acc_status.ams_status.ts_state == TS_ACTIVE) {
switch (dash_rx.r2d_progress) { if((r2d_progress == R2D_TS_ACTIVE) || (r2d_progress == R2D_TSMS) || (r2d_progress == R2D_NONE)){
case R2D_NONE: r = g = 1;
case R2D_TSMS: }
case R2D_TSActive: if((r2d_progress == R2D_RESETTING_NODES) || (r2d_progress == R2D_RESETTING_COMMS) || (r2d_progress == R2D_WAITING_INIT) || (r2d_progress == R2D_INIT_STAGE1) || (r2d_progress == R2D_INIT_STAGE2)){
r = g = 1; br = bg = 1;
break; }
case R2D_Success: if(r2d_progress == R2D_INIT_SUCCESS){
g = 1; g = 1;
break;
default:
// Gelb blink
bg = br = 1;
break;
} }
} else { } else {
b = 1; b = r = 1;
} }
HAL_GPIO_WritePin(R2D_R_GPIO_Port, R2D_R_Pin, r); HAL_GPIO_WritePin(R2D_R_GPIO_Port, R2D_R_Pin, r);
@ -267,20 +192,17 @@ int main(void)
HAL_GPIO_WritePin(R2D_B_GPIO_Port, R2D_B_Pin, b); HAL_GPIO_WritePin(R2D_B_GPIO_Port, R2D_B_Pin, b);
if (br || bg || bb) { if ((br || bg || bb) && ((HAL_GetTick() - blink_tick_r2d) > 1000u)) {
HAL_GPIO_WritePin(R2D_R_GPIO_Port, R2D_R_Pin, br && blink_state); if (br) { HAL_GPIO_TogglePin(R2D_R_GPIO_Port, R2D_R_Pin); }
HAL_GPIO_WritePin(R2D_G_GPIO_Port, R2D_G_Pin, bg && blink_state); if (bg) { HAL_GPIO_TogglePin(R2D_G_GPIO_Port, R2D_G_Pin); }
HAL_GPIO_WritePin(R2D_B_GPIO_Port, R2D_B_Pin, bb && blink_state); if (bb) { HAL_GPIO_TogglePin(R2D_B_GPIO_Port, R2D_B_Pin); }
blink_tick_r2d = HAL_GetTick();
} }
blink_state = !blink_state; if ((HAL_GetTick() - can_send_tick) > 50u){
can_send();
HAL_Delay(50); can_send_tick = HAL_GetTick();
}
/*
* TODO:
* Farbveläufe
**/
} }
/* USER CODE END 3 */ /* USER CODE END 3 */
@ -298,12 +220,10 @@ void SystemClock_Config(void)
/** Initializes the RCC Oscillators according to the specified parameters /** Initializes the RCC Oscillators according to the specified parameters
* in the RCC_OscInitTypeDef structure. * in the RCC_OscInitTypeDef structure.
*/ */
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI; RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE;
RCC_OscInitStruct.HSEState = RCC_HSE_ON;
RCC_OscInitStruct.HSIState = RCC_HSI_ON; RCC_OscInitStruct.HSIState = RCC_HSI_ON;
RCC_OscInitStruct.HSICalibrationValue = RCC_HSICALIBRATION_DEFAULT; RCC_OscInitStruct.PLL.PLLState = RCC_PLL_NONE;
RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSI;
RCC_OscInitStruct.PLL.PLLMUL = RCC_PLL_MUL4;
if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK)
{ {
Error_Handler(); Error_Handler();
@ -313,7 +233,7 @@ void SystemClock_Config(void)
*/ */
RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK
|RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2; |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2;
RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK; RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_HSE;
RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1; RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1; RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1;
RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1; RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;
@ -373,6 +293,7 @@ static void MX_GPIO_Init(void)
/* USER CODE END MX_GPIO_Init_1 */ /* USER CODE END MX_GPIO_Init_1 */
/* GPIO Ports Clock Enable */ /* GPIO Ports Clock Enable */
__HAL_RCC_GPIOF_CLK_ENABLE();
__HAL_RCC_GPIOA_CLK_ENABLE(); __HAL_RCC_GPIOA_CLK_ENABLE();
__HAL_RCC_GPIOB_CLK_ENABLE(); __HAL_RCC_GPIOB_CLK_ENABLE();
@ -412,36 +333,7 @@ static void MX_GPIO_Init(void)
} }
/* USER CODE BEGIN 4 */ /* USER CODE BEGIN 4 */
// CAN RX interrupt handler
void HAL_CAN_RxFifo0MsgPendingCallback(CAN_HandleTypeDef *hcan) {
CAN_RxHeaderTypeDef rxHeader;
uint8_t rxData[8];
// Read frame from HW into buffer
if (HAL_CAN_GetRxMessage(hcan, CAN_RX_FIFO0, &rxHeader, rxData) != HAL_OK)
Error_Handler();
// Discard if it's not for us (shouldn't happen thanks to filter, but just to be sure)
if (rxHeader.StdId == CAN_ID_RX_AMS) {
uint8_t ams_info = rxData[0];
uint8_t imd_info = rxData[6];
dash_rx.ams_state = ams_info & 0b01111111;
dash_rx.sdc_closed = ams_info >> 7;
dash_rx.imd_ok = imd_info >> 7;
ams_last_tick = HAL_GetTick();
}
if (rxHeader.StdId == CAN_ID_RX_R2D) {
uint8_t r2d_info = rxData[1];
dash_rx.r2d_progress = r2d_info & 0b00001111;
}
}
/* USER CODE END 4 */ /* USER CODE END 4 */
/** /**

View File

@ -20,26 +20,28 @@ Mcu.IP3=SYS
Mcu.IPNb=4 Mcu.IPNb=4
Mcu.Name=STM32F302C(B-C)Tx Mcu.Name=STM32F302C(B-C)Tx
Mcu.Package=LQFP48 Mcu.Package=LQFP48
Mcu.Pin0=PA0 Mcu.Pin0=PF0-OSC_IN
Mcu.Pin1=PA1 Mcu.Pin1=PF1-OSC_OUT
Mcu.Pin10=PA11 Mcu.Pin10=PB1
Mcu.Pin11=PA12 Mcu.Pin11=PB15
Mcu.Pin12=PA13 Mcu.Pin12=PA11
Mcu.Pin13=PA14 Mcu.Pin13=PA12
Mcu.Pin14=PB3 Mcu.Pin14=PA13
Mcu.Pin15=PB4 Mcu.Pin15=PA14
Mcu.Pin16=PB5 Mcu.Pin16=PB3
Mcu.Pin17=PB8 Mcu.Pin17=PB4
Mcu.Pin18=VP_SYS_VS_Systick Mcu.Pin18=PB5
Mcu.Pin2=PA2 Mcu.Pin19=PB8
Mcu.Pin3=PA3 Mcu.Pin2=PA0
Mcu.Pin4=PA4 Mcu.Pin20=VP_SYS_VS_Systick
Mcu.Pin5=PA5 Mcu.Pin3=PA1
Mcu.Pin6=PA7 Mcu.Pin4=PA2
Mcu.Pin7=PB0 Mcu.Pin5=PA3
Mcu.Pin8=PB1 Mcu.Pin6=PA4
Mcu.Pin9=PB15 Mcu.Pin7=PA5
Mcu.PinsNb=19 Mcu.Pin8=PA7
Mcu.Pin9=PB0
Mcu.PinsNb=21
Mcu.ThirdPartyNb=0 Mcu.ThirdPartyNb=0
Mcu.UserConstants= Mcu.UserConstants=
Mcu.UserName=STM32F302CBTx Mcu.UserName=STM32F302CBTx
@ -122,6 +124,10 @@ PB8.GPIOParameters=GPIO_Label
PB8.GPIO_Label=RMode_Out_3V3 PB8.GPIO_Label=RMode_Out_3V3
PB8.Locked=true PB8.Locked=true
PB8.Signal=GPIO_Input PB8.Signal=GPIO_Input
PF0-OSC_IN.Mode=HSE-External-Oscillator
PF0-OSC_IN.Signal=RCC_OSC_IN
PF1-OSC_OUT.Mode=HSE-External-Oscillator
PF1-OSC_OUT.Signal=RCC_OSC_OUT
PinOutPanel.RotationAngle=0 PinOutPanel.RotationAngle=0
ProjectManager.AskForMigrate=true ProjectManager.AskForMigrate=true
ProjectManager.BackupPrevious=false ProjectManager.BackupPrevious=false
@ -164,8 +170,8 @@ RCC.CortexFreq_Value=16000000
RCC.FCLKCortexFreq_Value=16000000 RCC.FCLKCortexFreq_Value=16000000
RCC.FamilyName=M RCC.FamilyName=M
RCC.HCLKFreq_Value=16000000 RCC.HCLKFreq_Value=16000000
RCC.HSEPLLFreq_Value=8000000 RCC.HSEPLLFreq_Value=16000000
RCC.HSE_VALUE=8000000 RCC.HSE_VALUE=16000000
RCC.HSIPLLFreq_Value=4000000 RCC.HSIPLLFreq_Value=4000000
RCC.HSI_VALUE=8000000 RCC.HSI_VALUE=8000000
RCC.I2C1Freq_Value=8000000 RCC.I2C1Freq_Value=8000000
@ -178,9 +184,9 @@ RCC.PLLCLKFreq_Value=16000000
RCC.PLLMCOFreq_Value=8000000 RCC.PLLMCOFreq_Value=8000000
RCC.PLLMUL=RCC_PLL_MUL4 RCC.PLLMUL=RCC_PLL_MUL4
RCC.RTCFreq_Value=40000 RCC.RTCFreq_Value=40000
RCC.RTCHSEDivFreq_Value=250000 RCC.RTCHSEDivFreq_Value=500000
RCC.SYSCLKFreq_VALUE=16000000 RCC.SYSCLKFreq_VALUE=16000000
RCC.SYSCLKSourceVirtual=RCC_SYSCLKSOURCE_PLLCLK RCC.SYSCLKSourceVirtual=RCC_SYSCLKSOURCE_HSE
RCC.TIM1Freq_Value=16000000 RCC.TIM1Freq_Value=16000000
RCC.TIM2Freq_Value=16000000 RCC.TIM2Freq_Value=16000000
RCC.USART1Freq_Value=16000000 RCC.USART1Freq_Value=16000000

View File

@ -0,0 +1,3 @@
../Core/Src/can.c:16:6:can_init 1
../Core/Src/can.c:21:6:can_send 1
../Core/Src/can.c:27:6:ftcan_msg_received_cb 3

View File

@ -0,0 +1,58 @@
Core/Src/can.o: ../Core/Src/can.c ../Core/Inc/can.h \
../Core/Inc/can_halal.h \
../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal.h \
../Core/Inc/stm32f3xx_hal_conf.h \
../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_rcc.h \
../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_def.h \
../Drivers/CMSIS/Device/ST/STM32F3xx/Include/stm32f3xx.h \
../Drivers/CMSIS/Device/ST/STM32F3xx/Include/stm32f302xc.h \
../Drivers/CMSIS/Include/core_cm4.h \
../Drivers/CMSIS/Include/cmsis_version.h \
../Drivers/CMSIS/Include/cmsis_compiler.h \
../Drivers/CMSIS/Include/cmsis_gcc.h \
../Drivers/CMSIS/Include/mpu_armv7.h \
../Drivers/CMSIS/Device/ST/STM32F3xx/Include/system_stm32f3xx.h \
../Drivers/STM32F3xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \
../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_rcc_ex.h \
../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_gpio.h \
../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_gpio_ex.h \
../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_exti.h \
../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_dma.h \
../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_dma_ex.h \
../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_cortex.h \
../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_can.h \
../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_flash.h \
../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_flash_ex.h \
../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_i2c.h \
../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_i2c_ex.h \
../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_pwr.h \
../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_pwr_ex.h
../Core/Inc/can.h:
../Core/Inc/can_halal.h:
../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal.h:
../Core/Inc/stm32f3xx_hal_conf.h:
../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_rcc.h:
../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_def.h:
../Drivers/CMSIS/Device/ST/STM32F3xx/Include/stm32f3xx.h:
../Drivers/CMSIS/Device/ST/STM32F3xx/Include/stm32f302xc.h:
../Drivers/CMSIS/Include/core_cm4.h:
../Drivers/CMSIS/Include/cmsis_version.h:
../Drivers/CMSIS/Include/cmsis_compiler.h:
../Drivers/CMSIS/Include/cmsis_gcc.h:
../Drivers/CMSIS/Include/mpu_armv7.h:
../Drivers/CMSIS/Device/ST/STM32F3xx/Include/system_stm32f3xx.h:
../Drivers/STM32F3xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h:
../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_rcc_ex.h:
../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_gpio.h:
../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_gpio_ex.h:
../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_exti.h:
../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_dma.h:
../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_dma_ex.h:
../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_cortex.h:
../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_can.h:
../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_flash.h:
../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_flash_ex.h:
../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_i2c.h:
../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_i2c_ex.h:
../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_pwr.h:
../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_pwr_ex.h:

View File

@ -0,0 +1,3 @@
../Core/Src/can.c:16:6:can_init 16 static
../Core/Src/can.c:21:6:can_send 16 static
../Core/Src/can.c:27:6:ftcan_msg_received_cb 24 static

View File

@ -0,0 +1,9 @@
../Core/Src/can_halal.c:8:19:ftcan_init 2
../Core/Src/can_halal.c:20:19:ftcan_transmit 1
../Core/Src/can_halal.c:31:19:ftcan_add_filter 4
../Core/Src/can_halal.c:65:6:HAL_CAN_RxFifo0MsgPendingCallback 4
../Core/Src/can_halal.c:225:13:ftcan_msg_received_cb 1
../Core/Src/can_halal.c:228:10:ftcan_unmarshal_unsigned 3
../Core/Src/can_halal.c:243:9:ftcan_unmarshal_signed 3
../Core/Src/can_halal.c:258:10:ftcan_marshal_unsigned 3
../Core/Src/can_halal.c:271:10:ftcan_marshal_signed 1

View File

@ -0,0 +1,56 @@
Core/Src/can_halal.o: ../Core/Src/can_halal.c ../Core/Inc/can_halal.h \
../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal.h \
../Core/Inc/stm32f3xx_hal_conf.h \
../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_rcc.h \
../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_def.h \
../Drivers/CMSIS/Device/ST/STM32F3xx/Include/stm32f3xx.h \
../Drivers/CMSIS/Device/ST/STM32F3xx/Include/stm32f302xc.h \
../Drivers/CMSIS/Include/core_cm4.h \
../Drivers/CMSIS/Include/cmsis_version.h \
../Drivers/CMSIS/Include/cmsis_compiler.h \
../Drivers/CMSIS/Include/cmsis_gcc.h \
../Drivers/CMSIS/Include/mpu_armv7.h \
../Drivers/CMSIS/Device/ST/STM32F3xx/Include/system_stm32f3xx.h \
../Drivers/STM32F3xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \
../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_rcc_ex.h \
../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_gpio.h \
../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_gpio_ex.h \
../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_exti.h \
../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_dma.h \
../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_dma_ex.h \
../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_cortex.h \
../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_can.h \
../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_flash.h \
../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_flash_ex.h \
../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_i2c.h \
../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_i2c_ex.h \
../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_pwr.h \
../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_pwr_ex.h
../Core/Inc/can_halal.h:
../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal.h:
../Core/Inc/stm32f3xx_hal_conf.h:
../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_rcc.h:
../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_def.h:
../Drivers/CMSIS/Device/ST/STM32F3xx/Include/stm32f3xx.h:
../Drivers/CMSIS/Device/ST/STM32F3xx/Include/stm32f302xc.h:
../Drivers/CMSIS/Include/core_cm4.h:
../Drivers/CMSIS/Include/cmsis_version.h:
../Drivers/CMSIS/Include/cmsis_compiler.h:
../Drivers/CMSIS/Include/cmsis_gcc.h:
../Drivers/CMSIS/Include/mpu_armv7.h:
../Drivers/CMSIS/Device/ST/STM32F3xx/Include/system_stm32f3xx.h:
../Drivers/STM32F3xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h:
../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_rcc_ex.h:
../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_gpio.h:
../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_gpio_ex.h:
../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_exti.h:
../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_dma.h:
../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_dma_ex.h:
../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_cortex.h:
../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_can.h:
../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_flash.h:
../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_flash_ex.h:
../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_i2c.h:
../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_i2c_ex.h:
../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_pwr.h:
../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_pwr_ex.h:

View File

@ -0,0 +1,9 @@
../Core/Src/can_halal.c:8:19:ftcan_init 24 static
../Core/Src/can_halal.c:20:19:ftcan_transmit 32 static
../Core/Src/can_halal.c:31:19:ftcan_add_filter 24 static
../Core/Src/can_halal.c:65:6:HAL_CAN_RxFifo0MsgPendingCallback 56 static
../Core/Src/can_halal.c:225:13:ftcan_msg_received_cb 24 static
../Core/Src/can_halal.c:228:10:ftcan_unmarshal_unsigned 48 static
../Core/Src/can_halal.c:243:9:ftcan_unmarshal_signed 64 static
../Core/Src/can_halal.c:258:10:ftcan_marshal_unsigned 32 static
../Core/Src/can_halal.c:271:10:ftcan_marshal_signed 32 static

View File

@ -1,6 +1,5 @@
../Core/Src/main.c:112:5:main 34 ../Core/Src/main.c:77:5:main 30
../Core/Src/main.c:293:6:SystemClock_Config 3 ../Core/Src/main.c:215:6:SystemClock_Config 3
../Core/Src/main.c:332:13:MX_CAN_Init 2 ../Core/Src/main.c:252:13:MX_CAN_Init 2
../Core/Src/main.c:369:13:MX_GPIO_Init 1 ../Core/Src/main.c:289:13:MX_GPIO_Init 1
../Core/Src/main.c:416:6:HAL_CAN_RxFifo0MsgPendingCallback 4 ../Core/Src/main.c:343:6:Error_Handler 1
../Core/Src/main.c:451:6:Error_Handler 1

View File

@ -25,7 +25,8 @@ Core/Src/main.o: ../Core/Src/main.c ../Core/Inc/main.h \
../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_i2c.h \ ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_i2c.h \
../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_i2c_ex.h \ ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_i2c_ex.h \
../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_pwr.h \ ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_pwr.h \
../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_pwr_ex.h ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_pwr_ex.h \
../Core/Inc/can.h ../Core/Inc/can_halal.h
../Core/Inc/main.h: ../Core/Inc/main.h:
../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal.h: ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal.h:
../Core/Inc/stm32f3xx_hal_conf.h: ../Core/Inc/stm32f3xx_hal_conf.h:
@ -54,3 +55,5 @@ Core/Src/main.o: ../Core/Src/main.c ../Core/Inc/main.h \
../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_i2c_ex.h: ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_i2c_ex.h:
../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_pwr.h: ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_pwr.h:
../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_pwr_ex.h: ../Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_pwr_ex.h:
../Core/Inc/can.h:
../Core/Inc/can_halal.h:

View File

@ -1,6 +1,5 @@
../Core/Src/main.c:112:5:main 80 static ../Core/Src/main.c:77:5:main 32 static
../Core/Src/main.c:293:6:SystemClock_Config 72 static ../Core/Src/main.c:215:6:SystemClock_Config 72 static
../Core/Src/main.c:332:13:MX_CAN_Init 8 static ../Core/Src/main.c:252:13:MX_CAN_Init 8 static
../Core/Src/main.c:369:13:MX_GPIO_Init 40 static ../Core/Src/main.c:289:13:MX_GPIO_Init 40 static
../Core/Src/main.c:416:6:HAL_CAN_RxFifo0MsgPendingCallback 56 static ../Core/Src/main.c:343:6:Error_Handler 4 static,ignoring_inline_asm
../Core/Src/main.c:451:6:Error_Handler 4 static,ignoring_inline_asm

View File

@ -5,6 +5,8 @@
# Add inputs and outputs from these tool invocations to the build variables # Add inputs and outputs from these tool invocations to the build variables
C_SRCS += \ C_SRCS += \
../Core/Src/can.c \
../Core/Src/can_halal.c \
../Core/Src/main.c \ ../Core/Src/main.c \
../Core/Src/stm32f3xx_hal_msp.c \ ../Core/Src/stm32f3xx_hal_msp.c \
../Core/Src/stm32f3xx_it.c \ ../Core/Src/stm32f3xx_it.c \
@ -13,6 +15,8 @@ C_SRCS += \
../Core/Src/system_stm32f3xx.c ../Core/Src/system_stm32f3xx.c
OBJS += \ OBJS += \
./Core/Src/can.o \
./Core/Src/can_halal.o \
./Core/Src/main.o \ ./Core/Src/main.o \
./Core/Src/stm32f3xx_hal_msp.o \ ./Core/Src/stm32f3xx_hal_msp.o \
./Core/Src/stm32f3xx_it.o \ ./Core/Src/stm32f3xx_it.o \
@ -21,6 +25,8 @@ OBJS += \
./Core/Src/system_stm32f3xx.o ./Core/Src/system_stm32f3xx.o
C_DEPS += \ C_DEPS += \
./Core/Src/can.d \
./Core/Src/can_halal.d \
./Core/Src/main.d \ ./Core/Src/main.d \
./Core/Src/stm32f3xx_hal_msp.d \ ./Core/Src/stm32f3xx_hal_msp.d \
./Core/Src/stm32f3xx_it.d \ ./Core/Src/stm32f3xx_it.d \
@ -36,7 +42,7 @@ Core/Src/%.o Core/Src/%.su Core/Src/%.cyclo: ../Core/Src/%.c Core/Src/subdir.mk
clean: clean-Core-2f-Src clean: clean-Core-2f-Src
clean-Core-2f-Src: clean-Core-2f-Src:
-$(RM) ./Core/Src/main.cyclo ./Core/Src/main.d ./Core/Src/main.o ./Core/Src/main.su ./Core/Src/stm32f3xx_hal_msp.cyclo ./Core/Src/stm32f3xx_hal_msp.d ./Core/Src/stm32f3xx_hal_msp.o ./Core/Src/stm32f3xx_hal_msp.su ./Core/Src/stm32f3xx_it.cyclo ./Core/Src/stm32f3xx_it.d ./Core/Src/stm32f3xx_it.o ./Core/Src/stm32f3xx_it.su ./Core/Src/syscalls.cyclo ./Core/Src/syscalls.d ./Core/Src/syscalls.o ./Core/Src/syscalls.su ./Core/Src/sysmem.cyclo ./Core/Src/sysmem.d ./Core/Src/sysmem.o ./Core/Src/sysmem.su ./Core/Src/system_stm32f3xx.cyclo ./Core/Src/system_stm32f3xx.d ./Core/Src/system_stm32f3xx.o ./Core/Src/system_stm32f3xx.su -$(RM) ./Core/Src/can.cyclo ./Core/Src/can.d ./Core/Src/can.o ./Core/Src/can.su ./Core/Src/can_halal.cyclo ./Core/Src/can_halal.d ./Core/Src/can_halal.o ./Core/Src/can_halal.su ./Core/Src/main.cyclo ./Core/Src/main.d ./Core/Src/main.o ./Core/Src/main.su ./Core/Src/stm32f3xx_hal_msp.cyclo ./Core/Src/stm32f3xx_hal_msp.d ./Core/Src/stm32f3xx_hal_msp.o ./Core/Src/stm32f3xx_hal_msp.su ./Core/Src/stm32f3xx_it.cyclo ./Core/Src/stm32f3xx_it.d ./Core/Src/stm32f3xx_it.o ./Core/Src/stm32f3xx_it.su ./Core/Src/syscalls.cyclo ./Core/Src/syscalls.d ./Core/Src/syscalls.o ./Core/Src/syscalls.su ./Core/Src/sysmem.cyclo ./Core/Src/sysmem.d ./Core/Src/sysmem.o ./Core/Src/sysmem.su ./Core/Src/system_stm32f3xx.cyclo ./Core/Src/system_stm32f3xx.d ./Core/Src/system_stm32f3xx.o ./Core/Src/system_stm32f3xx.su
.PHONY: clean-Core-2f-Src .PHONY: clean-Core-2f-Src

Binary file not shown.

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -60,8 +60,8 @@ all: main-build
main-build: Dashboard.elf secondary-outputs main-build: Dashboard.elf secondary-outputs
# Tool invocations # Tool invocations
Dashboard.elf Dashboard.map: $(OBJS) $(USER_OBJS) C:\Users\FaSTTUBe\STM32CubeIDE\workspace_1.17.0\Dashboard\STM32F302CBTX_FLASH.ld makefile objects.list $(OPTIONAL_TOOL_DEPS) Dashboard.elf Dashboard.map: $(OBJS) $(USER_OBJS) C:\Users\janek\OneDrive\Dokumente\FT\FT25\dashboard\dashboard\Software\STM32F302CBTX_FLASH.ld makefile objects.list $(OPTIONAL_TOOL_DEPS)
arm-none-eabi-gcc -o "Dashboard.elf" @"objects.list" $(USER_OBJS) $(LIBS) -mcpu=cortex-m4 -T"C:\Users\FaSTTUBe\STM32CubeIDE\workspace_1.17.0\Dashboard\STM32F302CBTX_FLASH.ld" --specs=nosys.specs -Wl,-Map="Dashboard.map" -Wl,--gc-sections -static --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -Wl,--start-group -lc -lm -Wl,--end-group arm-none-eabi-gcc -o "Dashboard.elf" @"objects.list" $(USER_OBJS) $(LIBS) -mcpu=cortex-m4 -T"C:\Users\janek\OneDrive\Dokumente\FT\FT25\dashboard\dashboard\Software\STM32F302CBTX_FLASH.ld" --specs=nosys.specs -Wl,-Map="Dashboard.map" -Wl,--gc-sections -static --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -Wl,--start-group -lc -lm -Wl,--end-group
@echo 'Finished building target: $@' @echo 'Finished building target: $@'
@echo ' ' @echo ' '

View File

@ -1,3 +1,5 @@
"./Core/Src/can.o"
"./Core/Src/can_halal.o"
"./Core/Src/main.o" "./Core/Src/main.o"
"./Core/Src/stm32f3xx_hal_msp.o" "./Core/Src/stm32f3xx_hal_msp.o"
"./Core/Src/stm32f3xx_it.o" "./Core/Src/stm32f3xx_it.o"