Recreate project for CubeMX/STM32forVSCode

This commit is contained in:
jazzpi
2022-06-09 16:33:57 +02:00
commit 6defd164b9
101 changed files with 110273 additions and 0 deletions

22
Core/Inc/AMS_CAN.h Normal file
View File

@ -0,0 +1,22 @@
/*
* AMS_CAN.h
*
* Created on: Mar 19, 2022
* Author: jasper
*/
#ifndef INC_AMS_CAN_H_
#define INC_AMS_CAN_H_
#include "stm32f4xx_hal.h"
#define CAN_ID_AMS_SLAVE_HEARTBEAT_BASE 0x100
void ams_can_init(CAN_HandleTypeDef* ams, CAN_HandleTypeDef* car);
void ams_can_handle_ams_msg(CAN_RxHeaderTypeDef* header, uint8_t* data);
void ams_can_handle_car_msg(CAN_RxHeaderTypeDef* header, uint8_t* data);
void ams_can_send_heartbeat();
#endif /* INC_AMS_CAN_H_ */

View File

@ -0,0 +1,53 @@
/*
* BQ_Abstraction_Layer.h
*
* Created on: 29.01.2022
* Author: max
*/
#ifndef INC_BQ_ABSTRACTION_LAYER_H_
#define INC_BQ_ABSTRACTION_LAYER_H_
#include "common_defs.h"
#include "main.h"
#include "stm32f4xx_hal.h"
#define WAKEUP_PIN BQ_Wakeup_Pin
#define WAKEUP_PORT BQ_Wakeup_GPIO_Port
#define CELL_OV_THRESHOLD 55100 // 4.2V
#define CELL_UV_THRESHOLD 34100 // 2.6V
#define BQ_RDY 1
#define BQ_STDBY 2
#define BQ_OFF 0
#define BQ_INIT_PHASE 3
#define BQ_ERROR 4
extern uint16_t cell_voltages[N_CELLS];
extern uint8_t bq_status;
extern uint32_t lastmeasurementtime;
void afe_init(UART_HandleTypeDef* uarthandle);
void afe_shutdown();
void afe_measure();
void afe_selftest();
void afe_wakeup();
void afe_init_fault_thresholds();
void afe_clear_all_faults();
void afe_check_faults();
void afe_update_Checksum();
void afe_config_measurement_channels();
void afe_config_communication();
void afe_config_balancing();
void afe_balance_channels(uint16_t channelstobalance);
void afe_config_gpios();
void afe_activate_LED();
#endif /* INC_BQ_ABSTRACTION_LAYER_H_ */

View File

@ -0,0 +1,32 @@
#ifndef BQ_COM
#define BQ_COM
#include "BQ_Register_Definitions.h"
#include "stm32f4xx_hal.h"
#define FRM_WRT_NR 0x90
#define FRM_WRT_R 0x81
#define DEFAULTNUMOFCELLS 10
#define DEFAULTNUMOFDIETEMPS 0
#define BQUARTTIMEOUT 200
void init_BQCom(UART_HandleTypeDef* uarthandle);
uint16_t Calculate_CRC(uint8_t* message_buffer, uint16_t bufferlength);
uint16_t Check_CRC(uint8_t* message_buffer, uint16_t bufferlength);
uint32_t BQ_Write_Register(uint8_t registeraddress, uint8_t registersize,
uint32_t data);
uint8_t BQ_Read_Register(uint8_t registeraddress, uint8_t registersize,
uint32_t* data);
uint32_t BQ_ReadMeasurements(uint8_t* buffer, uint8_t bufferlength);
uint8_t Communication_Reset();
uint8_t BQ_UART_Transmit(uint8_t* message_buffer, uint16_t bufferlength);
uint8_t BQ_UART_Receive(uint8_t* message_buffer, uint16_t bufferlength);
#endif

View File

@ -0,0 +1,191 @@
/*
* BQ_Register_Definitions.h
*
* Created on: Jan 14, 2022
* Author: max
*/
#ifndef INC_BQ_REGISTER_DEFINITIONS_H_
#define INC_BQ_REGISTER_DEFINITIONS_H_
#define REV 0x00
#define CMD_REG 0x02
#define CHANNELS 0x03
#define OVERSMPL 0x07
#define ADDR 0x0A
#define GROUPID 0x0B
#define DEV_CNTRL 0x0C
#define NCHAN 0x0D
#define DEVCONFIG 0x0E
#define PWRCONGIF 0x0F
#define COMCONFIG 0x10
#define TXHOLDOFF 0x12
#define CBCONFIG 0x13
#define CBENBL 0x14
#define TSTCONFIG 0x1E
#define TESTCTRL 0x20
#define TEST_ADC 0x22
#define TESTAUXPU 0x25
#define CTO 0x28
#define CTO_CNT 0x29
#define AM_PER 0x32
#define AM_CHAN 0x33
#define AM_OSMPL 0x37
#define SMPL_DLY1 0x3D
#define CELL_SPER 0x3E
#define AUX_SPER 0x3F
#define TEST_SPER 0x43
#define SHDN_STS 0x50
#define STATUS 0x51
#define FAULT_SUM 0x52
#define FAULT_UV 0x54
#define FAULT_OV 0x56
#define FAULT_AUX 0x58
#define FAULT_2UV 0x5A
#define FAULT_2OV 0x5C
#define FAULT_COM 0x5E
#define FAULT_SYS 0x60
#define FAULT_DEV 0x61
#define FAULT_GPI 0x63
#define MASK_COMM 0x68
#define MASK_SYS 0x6A
#define MASK_DEV 0x6B
#define FO_CTRL 0x6E
#define GPIO_DIR 0x78
#define GPIO_OUT 0x79
#define GPIO_PU 0x7A
#define GPIO_PD 0x7B
#define GPIO_IN 0x7C
#define GP_FLT_IN 0x7D
#define MAGIC1 0x82
#define COMP_UV 0x8C
#define COMP_OV 0x8D
#define CELL_UV 0x8E
#define CELL_OV 0x90
#define AUX0_UV 0x92
#define AUX0_OV 0x94
#define AUX1_UV 0x96
#define AUX1_OV 0x98
#define AUX2_UV 0x9A
#define AUX2_OV 0x9C
#define AUX3_UV 0x9E
#define AUX3_OV 0xA0
#define AUX4_UV 0xA2
#define AUX4_OV 0xA4
#define AUX5_UV 0xA6
#define AUX5_OV 0xA8
#define AUX6_UV 0xAA
#define AUX6_OV 0xAC
#define AUX7_UV 0xAE
#define AUX7_OV 0xB0
#define LOT_NUM 0xBE
#define SER_NUM 0xC6
#define SCRATCH 0xC8
#define VSOFFSET 0xD2
#define VSGAIN 0xD3
#define AX0OFFSET 0xD4
#define AX1OFFSET 0xD6
#define AX2OFFSET 0xD8
#define AX3OFFSET 0xDA
#define AX4OFFSET 0xDC
#define AX5OFFSET 0xDE
#define AX6OFFSET 0xE0
#define AX7OFFSET 0xE2
#define TSTR_ECC 0xE6
#define CSUM 0xF0
#define CSUM_RSLT 0xF4
#define TEST_CSUM 0xF8
#define EE_BURN 0xFA
#define MAGIC2 0xFC
#define REV_SIZE 0x02
#define CMD_SIZE 0x01
#define CHANNELS_SIZE 0x04
#define OVERSMPL_SIZE 0x01
#define ADDR_SIZE 0x01
#define GROUPID_SIZE 0x01
#define DEV_CNTRL_SIZE 0x01
#define NCHAN_SIZE 0x01
#define DEVCONFIG_SIZE 0x01
#define PWRCONGIF_SIZE 0x01
#define COMCONFIG_SIZE 0x02
#define TXHOLDOFF_SIZE 0x01
#define CBCONFIG_SIZE 0x01
#define CBENBL_SIZE 0x02
#define TSTCONFIG_SIZE 0x02
#define TESTCTRL_SIZE 0x02
#define TEST_ADC_SIZE 0x03
#define TESTAUXPU_SIZE 0x01
#define CTO_SIZE 0x01
#define CTO_CNT_SIZE 0x03
#define AM_PER_SIZE 0x01
#define AM_CHAN_SIZE 0x04
#define AM_OSMPL_SIZE 0x01
#define SMPL_DLY1_SIZE 0x01
#define CELL_SPER_SIZE 0x01
#define AUX_SPER_SIZE 0x04
#define TEST_SPER_SIZE 0x02
#define SHDN_STS_SIZE 0x01
#define STATUS_SIZE 0x01
#define FAULT_SUM_SIZE 0x02
#define FAULT_UV_SIZE 0x02
#define FAULT_OV_SIZE 0x02
#define FAULT_AUX_SIZE 0x02
#define FAULT_2UV_SIZE 0x02
#define FAULT_2OV_SIZE 0x02
#define FAULT_COM_SIZE 0x02
#define FAULT_SYS_SIZE 0x01
#define FAULT_DEV_SIZE 0x02
#define FAULT_GPI_SIZE 0x01
#define MASK_COMM_SIZE 0x02
#define MASK_SYS_SIZE 0x01
#define MASK_DEV_SIZE 0x02
#define FO_CTRL_SIZE 0x02
#define GPIO_DIR_SIZE 0x01
#define GPIO_OUT_SIZE 0x01
#define GPIO_PU_SIZE 0x01
#define GPIO_PD_SIZE 0x01
#define GPIO_IN_SIZE 0x01
#define GP_FLT_IN_SIZE 0x01
#define MAGIC1_SIZE 0x04
#define COMP_UV_SIZE 0x01
#define COMP_OV_SIZE 0x01
#define CELL_UV_SIZE 0x02
#define CELL_OV_SIZE 0x02
#define AUX0_UV_SIZE 0x02
#define AUX0_OV_SIZE 0x02
#define AUX1_UV_SIZE 0x02
#define AUX1_OV_SIZE 0x02
#define AUX2_UV_SIZE 0x02
#define AUX2_OV_SIZE 0x02
#define AUX3_UV_SIZE 0x02
#define AUX3_OV_SIZE 0x02
#define AUX4_UV_SIZE 0x02
#define AUX4_OV_SIZE 0x02
#define AUX5_UV_SIZE 0x02
#define AUX5_OV_SIZE 0x02
#define AUX6_UV_SIZE 0x02
#define AUX6_OV_SIZE 0x02
#define AUX7_UV_SIZE 0x02
#define AUX7_OV_SIZE 0x02
#define LOT_NUM_SIZE 0x04
#define SER_NUM_SIZE 0x02
#define SCRATCH_SIZE 0x08
#define VSOFFSET_SIZE 0x01
#define VSGAIN_SIZE 0x01
#define AX0OFFSET_SIZE 0x02
#define AX1OFFSET_SIZE 0x02
#define AX2OFFSET_SIZE 0x02
#define AX3OFFSET_SIZE 0x02
#define AX4OFFSET_SIZE 0x02
#define AX5OFFSET_SIZE 0x02
#define AX6OFFSET_SIZE 0x02
#define AX7OFFSET_SIZE 0x02
#define TSTR_ECC_SIZE 0x08
#define CSUM_SIZE 0x04
#define CSUM_RSLT_SIZE 0x04
#define TEST_CSUM_SIZE 0x02
#define EE_BURN_SIZE 0x01
#define MAGIC2_SIZE 0x04
#endif /* INC_BQ_REGISTER_DEFINITIONS_H_ */

View File

@ -0,0 +1,49 @@
/*
* BatteryManagement.h
*
* Created on: 29.01.2022
* Author: max
*/
#ifndef INC_BATTERYMANAGEMENT_H_
#define INC_BATTERYMANAGEMENT_H_
#include "stm32f4xx_hal.h"
#define OVERVOLTAGE_LIMIT 55100 // 4.2V
#define UNDERVOLTAGE_LIMIT 34100 // 2.6V
#define OVERTEMPERATURE_LIMIT
#define UNDERTEMPERATURE_LIMIT
#define AMS_MONITORING 1
#define AMS_OV_ERROR 2
#define AMS_UV_ERROR 3
#define AMS_OT_ERROR 4
#define AMS_UT_ERROR 5
#define AMS_TIMEOUT_ERROR 6
uint8_t highestcell;
uint8_t lowestcell;
uint8_t highesttempsensor;
uint8_t lowesttempsensor;
uint32_t modulesumvoltage;
uint8_t ams_status;
void ams_init(UART_HandleTypeDef* uarthandle, DMA_HandleTypeDef* uartdma);
void ams_loop_discharging();
void ams_loop_charging();
void ams_check_cell_voltages();
void ams_check_cell_temperaures();
void ams_step_soc_model();
void ams_step_balancing_model();
void ams_fan_control();
#endif /* INC_BATTERYMANAGEMENT_H_ */

30
Core/Inc/SoftI2C.h Normal file
View File

@ -0,0 +1,30 @@
/*
* SoftI2C.h
*
* Created on: 30.01.2022
* Author: max
*/
#ifndef INC_SOFTI2C_H_
#define INC_SOFTI2C_H_
#include "stm32f4xx_hal.h"
void Soft_I2C_Init();
void Soft_I2C_Transmit(uint8_t address, uint8_t* databuffer,
uint8_t bufferlength);
void Soft_I2C_Receive(uint8_t address, uint8_t* databuffer,
uint8_t bufferlength);
void SDA_WriteMode();
void SDA_ReadMode();
void setSDA(uint8_t state);
uint8_t readSDA();
void setSDCLK();
void resetSDCLK();
void bitwait();
#endif /* INC_SOFTI2C_H_ */

45
Core/Inc/TMP144.h Normal file
View File

@ -0,0 +1,45 @@
/*
* TMP144.h
*
* Created on: Mar 22, 2022
* Author: Jasper
*/
#ifndef INC_TMP144_H_
#define INC_TMP144_H_
#include "common_defs.h"
#include "stm32f4xx_hal.h"
extern volatile uint16_t temperatures[N_CELLS];
typedef enum {
TMP144_IDLE,
TMP144_RESETTING,
TMP144_INITIALIZING,
TMP144_READING_TEMP
} TMP144State;
typedef struct {
UART_HandleTypeDef* handle;
TMP144State state;
uint8_t rxbuf[34];
size_t n_sensors;
uint8_t sensor_mappings[16];
} TMP144Bus;
HAL_StatusTypeDef tmp144_init(UART_HandleTypeDef* busbar_side,
UART_HandleTypeDef* other_side);
HAL_StatusTypeDef tmp144_init_reset(TMP144Bus* bus);
HAL_StatusTypeDef tmp144_init_post_reset(TMP144Bus* bus);
HAL_StatusTypeDef tmp144_init_post_addr(TMP144Bus* bus);
HAL_StatusTypeDef tmp144_read_temps();
HAL_StatusTypeDef tmp144_send_read_temps(TMP144Bus* bus);
HAL_StatusTypeDef tmp144_recv_temps(TMP144Bus* bus);
#endif /* INC_TMP144_H_ */

13
Core/Inc/common_defs.h Normal file
View File

@ -0,0 +1,13 @@
/*
* common_defs.h
*
* Created on: 23 Mar 2022
* Author: Jasper
*/
#ifndef INC_COMMON_DEFS_H_
#define INC_COMMON_DEFS_H_
#define N_CELLS 10
#endif /* INC_COMMON_DEFS_H_ */

84
Core/Inc/main.h Normal file
View File

@ -0,0 +1,84 @@
/* USER CODE BEGIN Header */
/**
******************************************************************************
* @file : main.h
* @brief : Header for main.c file.
* This file contains the common defines of the application.
******************************************************************************
* @attention
*
* Copyright (c) 2022 STMicroelectronics.
* All rights reserved.
*
* This software is licensed under terms that can be found in the LICENSE file
* in the root directory of this software component.
* If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
/* USER CODE END Header */
/* Define to prevent recursive inclusion -------------------------------------*/
#ifndef __MAIN_H
#define __MAIN_H
#ifdef __cplusplus
extern "C" {
#endif
/* Includes ------------------------------------------------------------------*/
#include "stm32f4xx_hal.h"
/* Private includes ----------------------------------------------------------*/
/* USER CODE BEGIN Includes */
/* USER CODE END Includes */
/* Exported types ------------------------------------------------------------*/
/* USER CODE BEGIN ET */
/* USER CODE END ET */
/* Exported constants --------------------------------------------------------*/
/* USER CODE BEGIN EC */
/* USER CODE END EC */
/* Exported macro ------------------------------------------------------------*/
/* USER CODE BEGIN EM */
/* USER CODE END EM */
/* Exported functions prototypes ---------------------------------------------*/
void Error_Handler(void);
/* USER CODE BEGIN EFP */
/* USER CODE END EFP */
/* Private defines -----------------------------------------------------------*/
#define STAT_LED1_Pin GPIO_PIN_0
#define STAT_LED1_GPIO_Port GPIOC
#define STAT_LED2_Pin GPIO_PIN_1
#define STAT_LED2_GPIO_Port GPIOC
#define STAT_LED3_Pin GPIO_PIN_2
#define STAT_LED3_GPIO_Port GPIOC
#define STAT_LED4_Pin GPIO_PIN_3
#define STAT_LED4_GPIO_Port GPIOC
#define BQ_POWER_ACTIVATE_Pin GPIO_PIN_0
#define BQ_POWER_ACTIVATE_GPIO_Port GPIOB
#define BQ_VIO_ACTICATE_Pin GPIO_PIN_1
#define BQ_VIO_ACTICATE_GPIO_Port GPIOB
#define FAN_CONTROL_Pin GPIO_PIN_9
#define FAN_CONTROL_GPIO_Port GPIOC
#define BQ_Wakeup_Pin GPIO_PIN_4
#define BQ_Wakeup_GPIO_Port GPIOB
/* USER CODE BEGIN Private defines */
/* USER CODE END Private defines */
#ifdef __cplusplus
}
#endif
#endif /* __MAIN_H */

View File

@ -0,0 +1,491 @@
/* USER CODE BEGIN Header */
/**
******************************************************************************
* @file stm32f4xx_hal_conf_template.h
* @author MCD Application Team
* @brief HAL configuration template file.
* This file should be copied to the application folder and renamed
* to stm32f4xx_hal_conf.h.
******************************************************************************
* @attention
*
* Copyright (c) 2017 STMicroelectronics.
* All rights reserved.
*
* This software is licensed under terms that can be found in the LICENSE file
* in the root directory of this software component.
* If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
/* USER CODE END Header */
/* Define to prevent recursive inclusion -------------------------------------*/
#ifndef __STM32F4xx_HAL_CONF_H
#define __STM32F4xx_HAL_CONF_H
#ifdef __cplusplus
extern "C" {
#endif
/* Exported types ------------------------------------------------------------*/
/* Exported constants --------------------------------------------------------*/
/* ########################## Module Selection ############################## */
/**
* @brief This is the list of modules to be used in the HAL driver
*/
#define HAL_MODULE_ENABLED
/* #define HAL_ADC_MODULE_ENABLED */
/* #define HAL_CRYP_MODULE_ENABLED */
#define HAL_CAN_MODULE_ENABLED
/* #define HAL_CRC_MODULE_ENABLED */
/* #define HAL_CAN_LEGACY_MODULE_ENABLED */
/* #define HAL_CRYP_MODULE_ENABLED */
/* #define HAL_DAC_MODULE_ENABLED */
/* #define HAL_DCMI_MODULE_ENABLED */
/* #define HAL_DMA2D_MODULE_ENABLED */
/* #define HAL_ETH_MODULE_ENABLED */
/* #define HAL_NAND_MODULE_ENABLED */
/* #define HAL_NOR_MODULE_ENABLED */
/* #define HAL_PCCARD_MODULE_ENABLED */
/* #define HAL_SRAM_MODULE_ENABLED */
/* #define HAL_SDRAM_MODULE_ENABLED */
/* #define HAL_HASH_MODULE_ENABLED */
#define HAL_I2C_MODULE_ENABLED
/* #define HAL_I2S_MODULE_ENABLED */
/* #define HAL_IWDG_MODULE_ENABLED */
/* #define HAL_LTDC_MODULE_ENABLED */
/* #define HAL_RNG_MODULE_ENABLED */
/* #define HAL_RTC_MODULE_ENABLED */
/* #define HAL_SAI_MODULE_ENABLED */
/* #define HAL_SD_MODULE_ENABLED */
/* #define HAL_MMC_MODULE_ENABLED */
/* #define HAL_SPI_MODULE_ENABLED */
/* #define HAL_TIM_MODULE_ENABLED */
#define HAL_UART_MODULE_ENABLED
/* #define HAL_USART_MODULE_ENABLED */
/* #define HAL_IRDA_MODULE_ENABLED */
/* #define HAL_SMARTCARD_MODULE_ENABLED */
/* #define HAL_SMBUS_MODULE_ENABLED */
/* #define HAL_WWDG_MODULE_ENABLED */
/* #define HAL_PCD_MODULE_ENABLED */
/* #define HAL_HCD_MODULE_ENABLED */
/* #define HAL_DSI_MODULE_ENABLED */
/* #define HAL_QSPI_MODULE_ENABLED */
/* #define HAL_QSPI_MODULE_ENABLED */
/* #define HAL_CEC_MODULE_ENABLED */
/* #define HAL_FMPI2C_MODULE_ENABLED */
/* #define HAL_FMPSMBUS_MODULE_ENABLED */
/* #define HAL_SPDIFRX_MODULE_ENABLED */
/* #define HAL_DFSDM_MODULE_ENABLED */
/* #define HAL_LPTIM_MODULE_ENABLED */
#define HAL_GPIO_MODULE_ENABLED
#define HAL_EXTI_MODULE_ENABLED
#define HAL_DMA_MODULE_ENABLED
#define HAL_RCC_MODULE_ENABLED
#define HAL_FLASH_MODULE_ENABLED
#define HAL_PWR_MODULE_ENABLED
#define HAL_CORTEX_MODULE_ENABLED
/* ########################## HSE/HSI Values adaptation ##################### */
/**
* @brief Adjust the value of External High Speed oscillator (HSE) used in your application.
* This value is used by the RCC HAL module to compute the system frequency
* (when HSE is used as system clock source, directly or through the PLL).
*/
#if !defined (HSE_VALUE)
#define HSE_VALUE 16000000U /*!< Value of the External oscillator in Hz */
#endif /* HSE_VALUE */
#if !defined (HSE_STARTUP_TIMEOUT)
#define HSE_STARTUP_TIMEOUT 100U /*!< Time out for HSE start up, in ms */
#endif /* HSE_STARTUP_TIMEOUT */
/**
* @brief Internal High Speed oscillator (HSI) value.
* This value is used by the RCC HAL module to compute the system frequency
* (when HSI is used as system clock source, directly or through the PLL).
*/
#if !defined (HSI_VALUE)
#define HSI_VALUE ((uint32_t)16000000U) /*!< Value of the Internal oscillator in Hz*/
#endif /* HSI_VALUE */
/**
* @brief Internal Low Speed oscillator (LSI) value.
*/
#if !defined (LSI_VALUE)
#define LSI_VALUE 32000U /*!< LSI Typical Value in Hz*/
#endif /* LSI_VALUE */ /*!< Value of the Internal Low Speed oscillator in Hz
The real value may vary depending on the variations
in voltage and temperature.*/
/**
* @brief External Low Speed oscillator (LSE) value.
*/
#if !defined (LSE_VALUE)
#define LSE_VALUE 32768U /*!< Value of the External Low Speed oscillator in Hz */
#endif /* LSE_VALUE */
#if !defined (LSE_STARTUP_TIMEOUT)
#define LSE_STARTUP_TIMEOUT 5000U /*!< Time out for LSE start up, in ms */
#endif /* LSE_STARTUP_TIMEOUT */
/**
* @brief External clock source for I2S peripheral
* This value is used by the I2S HAL module to compute the I2S clock source
* frequency, this source is inserted directly through I2S_CKIN pad.
*/
#if !defined (EXTERNAL_CLOCK_VALUE)
#define EXTERNAL_CLOCK_VALUE 12288000U /*!< Value of the External audio frequency in Hz*/
#endif /* EXTERNAL_CLOCK_VALUE */
/* Tip: To avoid modifying this file each time you need to use different HSE,
=== you can define the HSE value in your toolchain compiler preprocessor. */
/* ########################### System Configuration ######################### */
/**
* @brief This is the HAL system configuration section
*/
#define VDD_VALUE 3300U /*!< Value of VDD in mv */
#define TICK_INT_PRIORITY 0U /*!< tick interrupt priority */
#define USE_RTOS 0U
#define PREFETCH_ENABLE 1U
#define INSTRUCTION_CACHE_ENABLE 1U
#define DATA_CACHE_ENABLE 1U
#define USE_HAL_ADC_REGISTER_CALLBACKS 0U /* ADC register callback disabled */
#define USE_HAL_CAN_REGISTER_CALLBACKS 0U /* CAN register callback disabled */
#define USE_HAL_CEC_REGISTER_CALLBACKS 0U /* CEC register callback disabled */
#define USE_HAL_CRYP_REGISTER_CALLBACKS 0U /* CRYP register callback disabled */
#define USE_HAL_DAC_REGISTER_CALLBACKS 0U /* DAC register callback disabled */
#define USE_HAL_DCMI_REGISTER_CALLBACKS 0U /* DCMI register callback disabled */
#define USE_HAL_DFSDM_REGISTER_CALLBACKS 0U /* DFSDM register callback disabled */
#define USE_HAL_DMA2D_REGISTER_CALLBACKS 0U /* DMA2D register callback disabled */
#define USE_HAL_DSI_REGISTER_CALLBACKS 0U /* DSI register callback disabled */
#define USE_HAL_ETH_REGISTER_CALLBACKS 0U /* ETH register callback disabled */
#define USE_HAL_HASH_REGISTER_CALLBACKS 0U /* HASH register callback disabled */
#define USE_HAL_HCD_REGISTER_CALLBACKS 0U /* HCD register callback disabled */
#define USE_HAL_I2C_REGISTER_CALLBACKS 0U /* I2C register callback disabled */
#define USE_HAL_FMPI2C_REGISTER_CALLBACKS 0U /* FMPI2C register callback disabled */
#define USE_HAL_FMPSMBUS_REGISTER_CALLBACKS 0U /* FMPSMBUS register callback disabled */
#define USE_HAL_I2S_REGISTER_CALLBACKS 0U /* I2S register callback disabled */
#define USE_HAL_IRDA_REGISTER_CALLBACKS 0U /* IRDA register callback disabled */
#define USE_HAL_LPTIM_REGISTER_CALLBACKS 0U /* LPTIM register callback disabled */
#define USE_HAL_LTDC_REGISTER_CALLBACKS 0U /* LTDC register callback disabled */
#define USE_HAL_MMC_REGISTER_CALLBACKS 0U /* MMC register callback disabled */
#define USE_HAL_NAND_REGISTER_CALLBACKS 0U /* NAND register callback disabled */
#define USE_HAL_NOR_REGISTER_CALLBACKS 0U /* NOR register callback disabled */
#define USE_HAL_PCCARD_REGISTER_CALLBACKS 0U /* PCCARD register callback disabled */
#define USE_HAL_PCD_REGISTER_CALLBACKS 0U /* PCD register callback disabled */
#define USE_HAL_QSPI_REGISTER_CALLBACKS 0U /* QSPI register callback disabled */
#define USE_HAL_RNG_REGISTER_CALLBACKS 0U /* RNG register callback disabled */
#define USE_HAL_RTC_REGISTER_CALLBACKS 0U /* RTC register callback disabled */
#define USE_HAL_SAI_REGISTER_CALLBACKS 0U /* SAI register callback disabled */
#define USE_HAL_SD_REGISTER_CALLBACKS 0U /* SD register callback disabled */
#define USE_HAL_SMARTCARD_REGISTER_CALLBACKS 0U /* SMARTCARD register callback disabled */
#define USE_HAL_SDRAM_REGISTER_CALLBACKS 0U /* SDRAM register callback disabled */
#define USE_HAL_SRAM_REGISTER_CALLBACKS 0U /* SRAM register callback disabled */
#define USE_HAL_SPDIFRX_REGISTER_CALLBACKS 0U /* SPDIFRX register callback disabled */
#define USE_HAL_SMBUS_REGISTER_CALLBACKS 0U /* SMBUS register callback disabled */
#define USE_HAL_SPI_REGISTER_CALLBACKS 0U /* SPI register callback disabled */
#define USE_HAL_TIM_REGISTER_CALLBACKS 0U /* TIM register callback disabled */
#define USE_HAL_UART_REGISTER_CALLBACKS 0U /* UART register callback disabled */
#define USE_HAL_USART_REGISTER_CALLBACKS 0U /* USART register callback disabled */
#define USE_HAL_WWDG_REGISTER_CALLBACKS 0U /* WWDG register callback disabled */
/* ########################## Assert Selection ############################## */
/**
* @brief Uncomment the line below to expanse the "assert_param" macro in the
* HAL drivers code
*/
/* #define USE_FULL_ASSERT 1U */
/* ################## Ethernet peripheral configuration ##################### */
/* Section 1 : Ethernet peripheral configuration */
/* MAC ADDRESS: MAC_ADDR0:MAC_ADDR1:MAC_ADDR2:MAC_ADDR3:MAC_ADDR4:MAC_ADDR5 */
#define MAC_ADDR0 2U
#define MAC_ADDR1 0U
#define MAC_ADDR2 0U
#define MAC_ADDR3 0U
#define MAC_ADDR4 0U
#define MAC_ADDR5 0U
/* Definition of the Ethernet driver buffers size and count */
#define ETH_RX_BUF_SIZE ETH_MAX_PACKET_SIZE /* buffer size for receive */
#define ETH_TX_BUF_SIZE ETH_MAX_PACKET_SIZE /* buffer size for transmit */
#define ETH_RXBUFNB 4U /* 4 Rx buffers of size ETH_RX_BUF_SIZE */
#define ETH_TXBUFNB 4U /* 4 Tx buffers of size ETH_TX_BUF_SIZE */
/* Section 2: PHY configuration section */
/* DP83848_PHY_ADDRESS Address*/
#define DP83848_PHY_ADDRESS 0x01U
/* PHY Reset delay these values are based on a 1 ms Systick interrupt*/
#define PHY_RESET_DELAY 0x000000FFU
/* PHY Configuration delay */
#define PHY_CONFIG_DELAY 0x00000FFFU
#define PHY_READ_TO 0x0000FFFFU
#define PHY_WRITE_TO 0x0000FFFFU
/* Section 3: Common PHY Registers */
#define PHY_BCR ((uint16_t)0x0000U) /*!< Transceiver Basic Control Register */
#define PHY_BSR ((uint16_t)0x0001U) /*!< Transceiver Basic Status Register */
#define PHY_RESET ((uint16_t)0x8000U) /*!< PHY Reset */
#define PHY_LOOPBACK ((uint16_t)0x4000U) /*!< Select loop-back mode */
#define PHY_FULLDUPLEX_100M ((uint16_t)0x2100U) /*!< Set the full-duplex mode at 100 Mb/s */
#define PHY_HALFDUPLEX_100M ((uint16_t)0x2000U) /*!< Set the half-duplex mode at 100 Mb/s */
#define PHY_FULLDUPLEX_10M ((uint16_t)0x0100U) /*!< Set the full-duplex mode at 10 Mb/s */
#define PHY_HALFDUPLEX_10M ((uint16_t)0x0000U) /*!< Set the half-duplex mode at 10 Mb/s */
#define PHY_AUTONEGOTIATION ((uint16_t)0x1000U) /*!< Enable auto-negotiation function */
#define PHY_RESTART_AUTONEGOTIATION ((uint16_t)0x0200U) /*!< Restart auto-negotiation function */
#define PHY_POWERDOWN ((uint16_t)0x0800U) /*!< Select the power down mode */
#define PHY_ISOLATE ((uint16_t)0x0400U) /*!< Isolate PHY from MII */
#define PHY_AUTONEGO_COMPLETE ((uint16_t)0x0020U) /*!< Auto-Negotiation process completed */
#define PHY_LINKED_STATUS ((uint16_t)0x0004U) /*!< Valid link established */
#define PHY_JABBER_DETECTION ((uint16_t)0x0002U) /*!< Jabber condition detected */
/* Section 4: Extended PHY Registers */
#define PHY_SR ((uint16_t)0x10U) /*!< PHY status register Offset */
#define PHY_SPEED_STATUS ((uint16_t)0x0002U) /*!< PHY Speed mask */
#define PHY_DUPLEX_STATUS ((uint16_t)0x0004U) /*!< PHY Duplex mask */
/* ################## SPI peripheral configuration ########################## */
/* CRC FEATURE: Use to activate CRC feature inside HAL SPI Driver
* Activated: CRC code is present inside driver
* Deactivated: CRC code cleaned from driver
*/
#define USE_SPI_CRC 0U
/* Includes ------------------------------------------------------------------*/
/**
* @brief Include module's header file
*/
#ifdef HAL_RCC_MODULE_ENABLED
#include "stm32f4xx_hal_rcc.h"
#endif /* HAL_RCC_MODULE_ENABLED */
#ifdef HAL_GPIO_MODULE_ENABLED
#include "stm32f4xx_hal_gpio.h"
#endif /* HAL_GPIO_MODULE_ENABLED */
#ifdef HAL_EXTI_MODULE_ENABLED
#include "stm32f4xx_hal_exti.h"
#endif /* HAL_EXTI_MODULE_ENABLED */
#ifdef HAL_DMA_MODULE_ENABLED
#include "stm32f4xx_hal_dma.h"
#endif /* HAL_DMA_MODULE_ENABLED */
#ifdef HAL_CORTEX_MODULE_ENABLED
#include "stm32f4xx_hal_cortex.h"
#endif /* HAL_CORTEX_MODULE_ENABLED */
#ifdef HAL_ADC_MODULE_ENABLED
#include "stm32f4xx_hal_adc.h"
#endif /* HAL_ADC_MODULE_ENABLED */
#ifdef HAL_CAN_MODULE_ENABLED
#include "stm32f4xx_hal_can.h"
#endif /* HAL_CAN_MODULE_ENABLED */
#ifdef HAL_CAN_LEGACY_MODULE_ENABLED
#include "stm32f4xx_hal_can_legacy.h"
#endif /* HAL_CAN_LEGACY_MODULE_ENABLED */
#ifdef HAL_CRC_MODULE_ENABLED
#include "stm32f4xx_hal_crc.h"
#endif /* HAL_CRC_MODULE_ENABLED */
#ifdef HAL_CRYP_MODULE_ENABLED
#include "stm32f4xx_hal_cryp.h"
#endif /* HAL_CRYP_MODULE_ENABLED */
#ifdef HAL_DMA2D_MODULE_ENABLED
#include "stm32f4xx_hal_dma2d.h"
#endif /* HAL_DMA2D_MODULE_ENABLED */
#ifdef HAL_DAC_MODULE_ENABLED
#include "stm32f4xx_hal_dac.h"
#endif /* HAL_DAC_MODULE_ENABLED */
#ifdef HAL_DCMI_MODULE_ENABLED
#include "stm32f4xx_hal_dcmi.h"
#endif /* HAL_DCMI_MODULE_ENABLED */
#ifdef HAL_ETH_MODULE_ENABLED
#include "stm32f4xx_hal_eth.h"
#endif /* HAL_ETH_MODULE_ENABLED */
#ifdef HAL_FLASH_MODULE_ENABLED
#include "stm32f4xx_hal_flash.h"
#endif /* HAL_FLASH_MODULE_ENABLED */
#ifdef HAL_SRAM_MODULE_ENABLED
#include "stm32f4xx_hal_sram.h"
#endif /* HAL_SRAM_MODULE_ENABLED */
#ifdef HAL_NOR_MODULE_ENABLED
#include "stm32f4xx_hal_nor.h"
#endif /* HAL_NOR_MODULE_ENABLED */
#ifdef HAL_NAND_MODULE_ENABLED
#include "stm32f4xx_hal_nand.h"
#endif /* HAL_NAND_MODULE_ENABLED */
#ifdef HAL_PCCARD_MODULE_ENABLED
#include "stm32f4xx_hal_pccard.h"
#endif /* HAL_PCCARD_MODULE_ENABLED */
#ifdef HAL_SDRAM_MODULE_ENABLED
#include "stm32f4xx_hal_sdram.h"
#endif /* HAL_SDRAM_MODULE_ENABLED */
#ifdef HAL_HASH_MODULE_ENABLED
#include "stm32f4xx_hal_hash.h"
#endif /* HAL_HASH_MODULE_ENABLED */
#ifdef HAL_I2C_MODULE_ENABLED
#include "stm32f4xx_hal_i2c.h"
#endif /* HAL_I2C_MODULE_ENABLED */
#ifdef HAL_SMBUS_MODULE_ENABLED
#include "stm32f4xx_hal_smbus.h"
#endif /* HAL_SMBUS_MODULE_ENABLED */
#ifdef HAL_I2S_MODULE_ENABLED
#include "stm32f4xx_hal_i2s.h"
#endif /* HAL_I2S_MODULE_ENABLED */
#ifdef HAL_IWDG_MODULE_ENABLED
#include "stm32f4xx_hal_iwdg.h"
#endif /* HAL_IWDG_MODULE_ENABLED */
#ifdef HAL_LTDC_MODULE_ENABLED
#include "stm32f4xx_hal_ltdc.h"
#endif /* HAL_LTDC_MODULE_ENABLED */
#ifdef HAL_PWR_MODULE_ENABLED
#include "stm32f4xx_hal_pwr.h"
#endif /* HAL_PWR_MODULE_ENABLED */
#ifdef HAL_RNG_MODULE_ENABLED
#include "stm32f4xx_hal_rng.h"
#endif /* HAL_RNG_MODULE_ENABLED */
#ifdef HAL_RTC_MODULE_ENABLED
#include "stm32f4xx_hal_rtc.h"
#endif /* HAL_RTC_MODULE_ENABLED */
#ifdef HAL_SAI_MODULE_ENABLED
#include "stm32f4xx_hal_sai.h"
#endif /* HAL_SAI_MODULE_ENABLED */
#ifdef HAL_SD_MODULE_ENABLED
#include "stm32f4xx_hal_sd.h"
#endif /* HAL_SD_MODULE_ENABLED */
#ifdef HAL_SPI_MODULE_ENABLED
#include "stm32f4xx_hal_spi.h"
#endif /* HAL_SPI_MODULE_ENABLED */
#ifdef HAL_TIM_MODULE_ENABLED
#include "stm32f4xx_hal_tim.h"
#endif /* HAL_TIM_MODULE_ENABLED */
#ifdef HAL_UART_MODULE_ENABLED
#include "stm32f4xx_hal_uart.h"
#endif /* HAL_UART_MODULE_ENABLED */
#ifdef HAL_USART_MODULE_ENABLED
#include "stm32f4xx_hal_usart.h"
#endif /* HAL_USART_MODULE_ENABLED */
#ifdef HAL_IRDA_MODULE_ENABLED
#include "stm32f4xx_hal_irda.h"
#endif /* HAL_IRDA_MODULE_ENABLED */
#ifdef HAL_SMARTCARD_MODULE_ENABLED
#include "stm32f4xx_hal_smartcard.h"
#endif /* HAL_SMARTCARD_MODULE_ENABLED */
#ifdef HAL_WWDG_MODULE_ENABLED
#include "stm32f4xx_hal_wwdg.h"
#endif /* HAL_WWDG_MODULE_ENABLED */
#ifdef HAL_PCD_MODULE_ENABLED
#include "stm32f4xx_hal_pcd.h"
#endif /* HAL_PCD_MODULE_ENABLED */
#ifdef HAL_HCD_MODULE_ENABLED
#include "stm32f4xx_hal_hcd.h"
#endif /* HAL_HCD_MODULE_ENABLED */
#ifdef HAL_DSI_MODULE_ENABLED
#include "stm32f4xx_hal_dsi.h"
#endif /* HAL_DSI_MODULE_ENABLED */
#ifdef HAL_QSPI_MODULE_ENABLED
#include "stm32f4xx_hal_qspi.h"
#endif /* HAL_QSPI_MODULE_ENABLED */
#ifdef HAL_CEC_MODULE_ENABLED
#include "stm32f4xx_hal_cec.h"
#endif /* HAL_CEC_MODULE_ENABLED */
#ifdef HAL_FMPI2C_MODULE_ENABLED
#include "stm32f4xx_hal_fmpi2c.h"
#endif /* HAL_FMPI2C_MODULE_ENABLED */
#ifdef HAL_FMPSMBUS_MODULE_ENABLED
#include "stm32f4xx_hal_fmpsmbus.h"
#endif /* HAL_FMPSMBUS_MODULE_ENABLED */
#ifdef HAL_SPDIFRX_MODULE_ENABLED
#include "stm32f4xx_hal_spdifrx.h"
#endif /* HAL_SPDIFRX_MODULE_ENABLED */
#ifdef HAL_DFSDM_MODULE_ENABLED
#include "stm32f4xx_hal_dfsdm.h"
#endif /* HAL_DFSDM_MODULE_ENABLED */
#ifdef HAL_LPTIM_MODULE_ENABLED
#include "stm32f4xx_hal_lptim.h"
#endif /* HAL_LPTIM_MODULE_ENABLED */
#ifdef HAL_MMC_MODULE_ENABLED
#include "stm32f4xx_hal_mmc.h"
#endif /* HAL_MMC_MODULE_ENABLED */
/* Exported macro ------------------------------------------------------------*/
#ifdef USE_FULL_ASSERT
/**
* @brief The assert_param macro is used for function's parameters check.
* @param expr If expr is false, it calls assert_failed function
* which reports the name of the source file and the source
* line number of the call that failed.
* If expr is true, it returns no value.
* @retval None
*/
#define assert_param(expr) ((expr) ? (void)0U : assert_failed((uint8_t *)__FILE__, __LINE__))
/* Exported functions ------------------------------------------------------- */
void assert_failed(uint8_t* file, uint32_t line);
#else
#define assert_param(expr) ((void)0U)
#endif /* USE_FULL_ASSERT */
#ifdef __cplusplus
}
#endif
#endif /* __STM32F4xx_HAL_CONF_H */

73
Core/Inc/stm32f4xx_it.h Normal file
View File

@ -0,0 +1,73 @@
/* USER CODE BEGIN Header */
/**
******************************************************************************
* @file stm32f4xx_it.h
* @brief This file contains the headers of the interrupt handlers.
******************************************************************************
* @attention
*
* Copyright (c) 2022 STMicroelectronics.
* All rights reserved.
*
* This software is licensed under terms that can be found in the LICENSE file
* in the root directory of this software component.
* If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
/* USER CODE END Header */
/* Define to prevent recursive inclusion -------------------------------------*/
#ifndef __STM32F4xx_IT_H
#define __STM32F4xx_IT_H
#ifdef __cplusplus
extern "C" {
#endif
/* Private includes ----------------------------------------------------------*/
/* USER CODE BEGIN Includes */
/* USER CODE END Includes */
/* Exported types ------------------------------------------------------------*/
/* USER CODE BEGIN ET */
/* USER CODE END ET */
/* Exported constants --------------------------------------------------------*/
/* USER CODE BEGIN EC */
/* USER CODE END EC */
/* Exported macro ------------------------------------------------------------*/
/* USER CODE BEGIN EM */
/* USER CODE END EM */
/* Exported functions prototypes ---------------------------------------------*/
void NMI_Handler(void);
void HardFault_Handler(void);
void MemManage_Handler(void);
void BusFault_Handler(void);
void UsageFault_Handler(void);
void SVC_Handler(void);
void DebugMon_Handler(void);
void PendSV_Handler(void);
void SysTick_Handler(void);
void CAN1_RX0_IRQHandler(void);
void CAN1_RX1_IRQHandler(void);
void USART1_IRQHandler(void);
void USART3_IRQHandler(void);
void CAN2_RX0_IRQHandler(void);
void CAN2_RX1_IRQHandler(void);
void CAN2_SCE_IRQHandler(void);
/* USER CODE BEGIN EFP */
/* USER CODE END EFP */
#ifdef __cplusplus
}
#endif
#endif /* __STM32F4xx_IT_H */