diff --git a/Core/Src/Examples/ExampleEXTI.cpp b/Core/Src/Examples/ExampleEXTI.cpp new file mode 100644 index 00000000..0c695806 --- /dev/null +++ b/Core/Src/Examples/ExampleEXTI.cpp @@ -0,0 +1,32 @@ +#ifdef EXAMPLE_EXTI + +#include "main.h" +#include "ST-LIB.hpp" + +#ifdef TEST_0 +// Press the nucleo user button (PC13) to toggle the LED (PB0) + +using namespace ST_LIB; +constexpr auto led = ST_LIB::DigitalOutputDomain::DigitalOutput(ST_LIB::PB0); +ST_LIB::DigitalOutputDomain::Instance* g_led; + +void toggle_led() { g_led->toggle(); } + +constexpr auto exti_req = + ST_LIB::EXTIDomain::Device(ST_LIB::PC13, ST_LIB::EXTIDomain::Trigger::BOTH_EDGES, toggle_led); +using MainBoard = ST_LIB::Board; + +int main(void) { + MainBoard::init(); + + static auto& led_instance = MainBoard::instance_of(); + g_led = &led_instance; + + while (1) { + // led_instance.toggle(); + // HAL_Delay(200); + } +} +#endif + +#endif diff --git a/Core/Src/Runes/Runes.cpp b/Core/Src/Runes/Runes.cpp index 8cb788bf..fd9812f3 100644 --- a/Core/Src/Runes/Runes.cpp +++ b/Core/Src/Runes/Runes.cpp @@ -15,19 +15,6 @@ ADC_HandleTypeDef hadc3; LPTIM_HandleTypeDef hlptim1; LPTIM_HandleTypeDef hlptim2; LPTIM_HandleTypeDef hlptim3; -extern TIM_HandleTypeDef htim1; -extern TIM_HandleTypeDef htim2; -extern TIM_HandleTypeDef htim3; -extern TIM_HandleTypeDef htim4; -extern TIM_HandleTypeDef htim5; -extern TIM_HandleTypeDef htim7; -extern TIM_HandleTypeDef htim8; -extern TIM_HandleTypeDef htim12; -extern TIM_HandleTypeDef htim16; -extern TIM_HandleTypeDef htim17; -extern TIM_HandleTypeDef htim15; -extern TIM_HandleTypeDef htim23; -extern TIM_HandleTypeDef htim24; UART_HandleTypeDef huart1; UART_HandleTypeDef huart2; UART_HandleTypeDef huart3; @@ -98,91 +85,6 @@ unordered_map UART::available_uarts = { uint8_t UART::printf_uart = 0; bool UART::printf_ready = false; -#endif -/************************************************ - * Encoder - ***********************************************/ -#ifdef HAL_TIM_MODULE_ENABLED -#define BASE TimerPeripheral::TIM_TYPE::BASE - -TimerPeripheral encoder_timer(&htim8, {BASE, 0, 65535}, "TIM 8"); - -map, TimerPeripheral*> Encoder::pin_timer_map = {{{PC6, PC7}, &encoder_timer}}; - -#endif -/************************************************ - * Timer - ***********************************************/ -#ifdef HAL_TIM_MODULE_ENABLED - -#define BASE TimerPeripheral::TIM_TYPE::BASE -#define ADVANCED TimerPeripheral::TIM_TYPE::ADVANCED - -TIM_HandleTypeDef* Time::global_timer = &htim2; -set Time::high_precision_timers = {&htim5, &htim24}; -TIM_HandleTypeDef* Time::mid_precision_timer = &htim23; - -TimerPeripheral timer1(&htim1, {ADVANCED}, "TIM 1"); -TimerPeripheral timer2(&htim2, {BASE}, "TIM 2"); -TimerPeripheral timer3(&htim3, {ADVANCED}, "TIM 3"); -TimerPeripheral timer4(&htim4, {ADVANCED}, "TIM 4"); -TimerPeripheral timer12(&htim12, {ADVANCED}, "TIM 12"); -TimerPeripheral timer16(&htim16, {BASE}, "TIM 16"); -TimerPeripheral timer17(&htim17, {BASE}, "TIM 17"); -TimerPeripheral timer15(&htim15, {ADVANCED}, "TIM 15"); -TimerPeripheral timer23(&htim23, {BASE, 275, UINT32_MAX - 1}, "TIM 23"); - -vector> TimerPeripheral::timers = - {timer1, timer2, timer3, timer4, timer12, timer15, timer16, timer17, timer23}; - -#endif - -/************************************************ - * PWM - ***********************************************/ -#ifdef HAL_TIM_MODULE_ENABLED - -#define NORMAL TimerPeripheral::PWM_MODE::NORMAL -#define PHASED TimerPeripheral::PWM_MODE::PHASED - -PWMmap TimerPeripheral::available_pwm = { - {PB14, {timer12, {TIM_CHANNEL_1, NORMAL}}}, - {PB15, {timer12, {TIM_CHANNEL_2, NORMAL}}}, - {PB4, {timer3, {TIM_CHANNEL_1, PHASED}}}, - {PB5, {timer3, {TIM_CHANNEL_2, NORMAL}}}, - {PC8, {timer3, {TIM_CHANNEL_3, NORMAL}}}, - {PD12, {timer4, {TIM_CHANNEL_1, NORMAL}}}, - {PD13, {timer4, {TIM_CHANNEL_2, NORMAL}}}, - {PD15, {timer4, {TIM_CHANNEL_4, NORMAL}}}, - {PE14, {timer1, {TIM_CHANNEL_4, PHASED}}}, - {PE6, {timer15, {TIM_CHANNEL_2, NORMAL}}}, - {PF1, {timer23, {TIM_CHANNEL_2, NORMAL}}}, - {PF2, {timer23, {TIM_CHANNEL_3, NORMAL}}}, - {PF3, {timer23, {TIM_CHANNEL_4, NORMAL}}}, - {PE5, {timer15, {TIM_CHANNEL_1, NORMAL}}}, - {PE11, {timer1, {TIM_CHANNEL_2, NORMAL}}}, -}; - -DualPWMmap TimerPeripheral::available_dual_pwms = { - {{PB8, PB6}, {timer16, {TIM_CHANNEL_1, NORMAL}}}, - {{PB9, PB7}, {timer17, {TIM_CHANNEL_1, PHASED}}}, - {{PE11, PE10}, {timer1, {TIM_CHANNEL_2, PHASED}}}, - {{PE13, PE12}, {timer1, {TIM_CHANNEL_3, PHASED}}}, - {{PE5, PE4}, {timer15, {TIM_CHANNEL_1, NORMAL}}}, - {{PE9, PE8}, {timer1, {TIM_CHANNEL_1, NORMAL}}}, -}; - -#endif - -/************************************************ - * Input Capture - ***********************************************/ -#ifdef HAL_TIM_MODULE_ENABLED - -map InputCapture::available_instances = { - {PF0, InputCapture::Instance(PF0, &timer23, TIM_CHANNEL_1, TIM_CHANNEL_2)} -}; - #endif /************************************************ @@ -262,18 +164,6 @@ uint32_t ADC::ranks[16] = { #endif #endif -/************************************************ - * EXTI - ***********************************************/ -#ifdef HAL_EXTI_MODULE_ENABLED - -map ExternalInterrupt::instances = { - {PE0.gpio_pin, Instance(EXTI0_IRQn)}, - {PE1.gpio_pin, Instance(EXTI1_IRQn)} -}; - -#endif - /************************************************ * I2C ***********************************************/ diff --git a/Core/Src/main.cpp b/Core/Src/main.cpp index 2b5aa232..55e9bc92 100644 --- a/Core/Src/main.cpp +++ b/Core/Src/main.cpp @@ -9,7 +9,7 @@ constexpr auto led = ST_LIB::DigitalOutputDomain::DigitalOutput(ST_LIB::PF13); using MainBoard = ST_LIB::Board; #if !defined(EXAMPLE_ADC) && !defined(EXAMPLE_ETHERNET) && !defined(EXAMPLE_MPU) && \ - !defined(EXAMPLE_HARDFAULT) + !defined(EXAMPLE_HARDFAULT) && !defined(EXAMPLE_EXTI) int main(void) { MainBoard::init(); diff --git a/Core/Src/stm32h7xx_hal_msp.c b/Core/Src/stm32h7xx_hal_msp.c index cef8bd4b..bf984e42 100644 --- a/Core/Src/stm32h7xx_hal_msp.c +++ b/Core/Src/stm32h7xx_hal_msp.c @@ -83,13 +83,13 @@ void HAL_MspInit(void) { /* USER CODE END MspInit 1 */ } -/** -* @brief ADC MSP Initialization -* This function configures the hardware resources used in this - * example -* @param hadc: ADC handle pointer -* @retval None -*/ +/** + * @brief ADC MSP Initialization + * This function configures the hardware resources used in this + * example + * @param hadc: ADC handle pointer + * @retval None + */ void HAL_ADC_MspInit(ADC_HandleTypeDef* hadc) { (void)hadc; /* ADC MSP is handled by HALAL/Services/ADC/NewADC.hpp */ @@ -640,614 +640,6 @@ void HAL_RTC_MspDeInit(RTC_HandleTypeDef* hrtc) { } } -/** - * @brief TIM_PWM MSP Initialization - * This function configures the hardware resources used in - * this example - * @param htim_pwm: TIM_PWM handle pointer - * @retval None - */ -void HAL_TIM_PWM_MspInit(TIM_HandleTypeDef* htim_pwm) { - if (htim_pwm->Instance == TIM1) { - /* USER CODE BEGIN TIM1_MspInit 0 */ - - /* USER CODE END TIM1_MspInit 0 */ - /* Peripheral clock enable */ - __HAL_RCC_TIM1_CLK_ENABLE(); - /* USER CODE BEGIN TIM1_MspInit 1 */ - - /* USER CODE END TIM1_MspInit 1 */ - } else if (htim_pwm->Instance == TIM3) { - /* USER CODE BEGIN TIM3_MspInit 0 */ - - /* USER CODE END TIM3_MspInit 0 */ - /* Peripheral clock enable */ - __HAL_RCC_TIM3_CLK_ENABLE(); - /* USER CODE BEGIN TIM3_MspInit 1 */ - - /* USER CODE END TIM3_MspInit 1 */ - } else if (htim_pwm->Instance == TIM4) { - /* USER CODE BEGIN TIM4_MspInit 0 */ - - /* USER CODE END TIM4_MspInit 0 */ - /* Peripheral clock enable */ - __HAL_RCC_TIM4_CLK_ENABLE(); - /* USER CODE BEGIN TIM4_MspInit 1 */ - - /* USER CODE END TIM4_MspInit 1 */ - } else if (htim_pwm->Instance == TIM12) { - /* USER CODE BEGIN TIM12_MspInit 0 */ - - /* USER CODE END TIM12_MspInit 0 */ - /* Peripheral clock enable */ - __HAL_RCC_TIM12_CLK_ENABLE(); - /* USER CODE BEGIN TIM12_MspInit 1 */ - - /* USER CODE END TIM12_MspInit 1 */ - } else if (htim_pwm->Instance == TIM15) { - /* USER CODE BEGIN TIM15_MspInit 0 */ - - /* USER CODE END TIM15_MspInit 0 */ - /* Peripheral clock enable */ - __HAL_RCC_TIM15_CLK_ENABLE(); - /* USER CODE BEGIN TIM15_MspInit 1 */ - - /* USER CODE END TIM15_MspInit 1 */ - } -} - -/** - * @brief TIM_Base MSP Initialization - * This function configures the hardware resources used in this example - * @param htim_base: TIM_Base handle pointer - * @retval None - */ -void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* htim_base) { - if (htim_base->Instance == TIM2) { - /* USER CODE BEGIN TIM2_MspInit 0 */ - - /* USER CODE END TIM2_MspInit 0 */ - /* Peripheral clock enable */ - __HAL_RCC_TIM2_CLK_ENABLE(); - /* TIM2 interrupt Init */ - HAL_NVIC_SetPriority(TIM2_IRQn, 0, 0); - HAL_NVIC_EnableIRQ(TIM2_IRQn); - /* USER CODE BEGIN TIM2_MspInit 1 */ - - /* USER CODE END TIM2_MspInit 1 */ - } else if (htim_base->Instance == TIM5) { - /* USER CODE BEGIN TIM5_MspInit 0 */ - - /* USER CODE END TIM5_MspInit 0 */ - /* Peripheral clock enable */ - __HAL_RCC_TIM5_CLK_ENABLE(); - /* TIM5 interrupt Init */ - HAL_NVIC_SetPriority(TIM5_IRQn, 0, 0); - HAL_NVIC_EnableIRQ(TIM5_IRQn); - /* USER CODE BEGIN TIM5_MspInit 1 */ - - /* USER CODE END TIM5_MspInit 1 */ - } else if (htim_base->Instance == TIM7) { - /* USER CODE BEGIN TIM7_MspInit 0 */ - - /* USER CODE END TIM7_MspInit 0 */ - /* Peripheral clock enable */ - __HAL_RCC_TIM7_CLK_ENABLE(); - /* TIM7 interrupt Init */ - HAL_NVIC_SetPriority(TIM7_IRQn, 0, 0); - HAL_NVIC_EnableIRQ(TIM7_IRQn); - /* USER CODE BEGIN TIM7_MspInit 1 */ - - /* USER CODE END TIM7_MspInit 1 */ - } else if (htim_base->Instance == TIM16) { - /* USER CODE BEGIN TIM16_MspInit 0 */ - - /* USER CODE END TIM16_MspInit 0 */ - /* Peripheral clock enable */ - __HAL_RCC_TIM16_CLK_ENABLE(); - /* USER CODE BEGIN TIM16_MspInit 1 */ - - /* USER CODE END TIM16_MspInit 1 */ - } else if (htim_base->Instance == TIM17) { - /* USER CODE BEGIN TIM17_MspInit 0 */ - - /* USER CODE END TIM17_MspInit 0 */ - /* Peripheral clock enable */ - __HAL_RCC_TIM17_CLK_ENABLE(); - /* USER CODE BEGIN TIM17_MspInit 1 */ - - /* USER CODE END TIM17_MspInit 1 */ - } else if (htim_base->Instance == TIM24) { - /* USER CODE BEGIN TIM24_MspInit 0 */ - - /* USER CODE END TIM24_MspInit 0 */ - /* Peripheral clock enable */ - __HAL_RCC_TIM24_CLK_ENABLE(); - /* TIM24 interrupt Init */ - HAL_NVIC_SetPriority(TIM24_IRQn, 0, 0); - HAL_NVIC_EnableIRQ(TIM24_IRQn); - /* USER CODE BEGIN TIM24_MspInit 1 */ - - /* USER CODE END TIM24_MspInit 1 */ - } -} - -/** - * @brief TIM_Encoder MSP Initialization - * This function configures the hardware resources used in this example - * @param htim_encoder: TIM_Encoder handle pointer - * @retval None - */ -void HAL_TIM_Encoder_MspInit(TIM_HandleTypeDef* htim_encoder) { - GPIO_InitTypeDef GPIO_InitStruct = {0}; - if (htim_encoder->Instance == TIM8) { - /* USER CODE BEGIN TIM8_MspInit 0 */ - - /* USER CODE END TIM8_MspInit 0 */ - /* Peripheral clock enable */ - __HAL_RCC_TIM8_CLK_ENABLE(); - - __HAL_RCC_GPIOC_CLK_ENABLE(); - /**TIM8 GPIO Configuration - PC6 ------> TIM8_CH1 - PC7 ------> TIM8_CH2 - */ - GPIO_InitStruct.Pin = GPIO_PIN_6 | GPIO_PIN_7; - GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; - GPIO_InitStruct.Pull = GPIO_NOPULL; - GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; - GPIO_InitStruct.Alternate = GPIO_AF3_TIM8; - HAL_GPIO_Init(GPIOC, &GPIO_InitStruct); - - /* TIM8 interrupt Init */ - HAL_NVIC_SetPriority(TIM8_TRG_COM_TIM14_IRQn, 0, 0); - HAL_NVIC_EnableIRQ(TIM8_TRG_COM_TIM14_IRQn); - /* USER CODE BEGIN TIM8_MspInit 1 */ - - /* USER CODE END TIM8_MspInit 1 */ - } -} - -/** - * @brief TIM_OC MSP Initialization - * This function configures the hardware resources used in this example - * @param htim_oc: TIM_OC handle pointer - * @retval None - */ -void HAL_TIM_OC_MspInit(TIM_HandleTypeDef* htim_oc) { - if (htim_oc->Instance == TIM15) { - /* USER CODE BEGIN TIM15_MspInit 0 */ - - /* USER CODE END TIM15_MspInit 0 */ - /* Peripheral clock enable */ - __HAL_RCC_TIM15_CLK_ENABLE(); - /* USER CODE BEGIN TIM15_MspInit 1 */ - - /* USER CODE END TIM15_MspInit 1 */ - } -} - -/** - * @brief TIM_IC MSP Initialization - * This function configures the hardware resources used in this example - * @param htim_ic: TIM_IC handle pointer - * @retval None - */ -void HAL_TIM_IC_MspInit(TIM_HandleTypeDef* htim_ic) { - GPIO_InitTypeDef GPIO_InitStruct = {0}; - if (htim_ic->Instance == TIM23) { - /* USER CODE BEGIN TIM23_MspInit 0 */ - - /* USER CODE END TIM23_MspInit 0 */ - /* Peripheral clock enable */ - __HAL_RCC_TIM23_CLK_ENABLE(); - - __HAL_RCC_GPIOF_CLK_ENABLE(); - /**TIM23 GPIO Configuration - PF0 ------> TIM23_CH1 - */ - GPIO_InitStruct.Pin = GPIO_PIN_0; - GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; - GPIO_InitStruct.Pull = GPIO_NOPULL; - GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; - GPIO_InitStruct.Alternate = GPIO_AF13_TIM23; - HAL_GPIO_Init(GPIOF, &GPIO_InitStruct); - - /* TIM23 interrupt Init */ - HAL_NVIC_SetPriority(TIM23_IRQn, 0, 0); - HAL_NVIC_EnableIRQ(TIM23_IRQn); - /* USER CODE BEGIN TIM23_MspInit 1 */ - - /* USER CODE END TIM23_MspInit 1 */ - } -} - -void HAL_TIM_MspPostInit(TIM_HandleTypeDef* htim) { - GPIO_InitTypeDef GPIO_InitStruct = {0}; - if (htim->Instance == TIM1) { - /* USER CODE BEGIN TIM1_MspPostInit 0 */ - - /* USER CODE END TIM1_MspPostInit 0 */ - __HAL_RCC_GPIOE_CLK_ENABLE(); - /**TIM1 GPIO Configuration - PE8 ------> TIM1_CH1N - PE9 ------> TIM1_CH1 - PE10 ------> TIM1_CH2N - PE11 ------> TIM1_CH2 - PE12 ------> TIM1_CH3N - PE13 ------> TIM1_CH3 - PE14 ------> TIM1_CH4 - */ - GPIO_InitStruct.Pin = GPIO_PIN_8 | GPIO_PIN_9 | GPIO_PIN_10 | GPIO_PIN_11 | GPIO_PIN_12 | - GPIO_PIN_13 | GPIO_PIN_14; - GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; - GPIO_InitStruct.Pull = GPIO_NOPULL; - GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; - GPIO_InitStruct.Alternate = GPIO_AF1_TIM1; - HAL_GPIO_Init(GPIOE, &GPIO_InitStruct); - - /* USER CODE BEGIN TIM1_MspPostInit 1 */ - - /* USER CODE END TIM1_MspPostInit 1 */ - } else if (htim->Instance == TIM3) { - /* USER CODE BEGIN TIM3_MspPostInit 0 */ - - /* USER CODE END TIM3_MspPostInit 0 */ - - __HAL_RCC_GPIOC_CLK_ENABLE(); - __HAL_RCC_GPIOB_CLK_ENABLE(); - /**TIM3 GPIO Configuration - PC8 ------> TIM3_CH3 - PC9 ------> TIM3_CH4 - PB4(NJTRST) ------> TIM3_CH1 - PB5 ------> TIM3_CH2 - */ - GPIO_InitStruct.Pin = GPIO_PIN_8 | GPIO_PIN_9; - GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; - GPIO_InitStruct.Pull = GPIO_NOPULL; - GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; - GPIO_InitStruct.Alternate = GPIO_AF2_TIM3; - HAL_GPIO_Init(GPIOC, &GPIO_InitStruct); - - GPIO_InitStruct.Pin = GPIO_PIN_4 | GPIO_PIN_5; - GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; - GPIO_InitStruct.Pull = GPIO_NOPULL; - GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; - GPIO_InitStruct.Alternate = GPIO_AF2_TIM3; - HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); - - /* USER CODE BEGIN TIM3_MspPostInit 1 */ - - /* USER CODE END TIM3_MspPostInit 1 */ - } else if (htim->Instance == TIM4) { - /* USER CODE BEGIN TIM4_MspPostInit 0 */ - - /* USER CODE END TIM4_MspPostInit 0 */ - - __HAL_RCC_GPIOD_CLK_ENABLE(); - /**TIM4 GPIO Configuration - PD12 ------> TIM4_CH1 - PD13 ------> TIM4_CH2 - PD14 ------> TIM4_CH3 - PD15 ------> TIM4_CH4 - */ - GPIO_InitStruct.Pin = GPIO_PIN_12 | GPIO_PIN_13 | GPIO_PIN_14 | GPIO_PIN_15; - GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; - GPIO_InitStruct.Pull = GPIO_NOPULL; - GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; - GPIO_InitStruct.Alternate = GPIO_AF2_TIM4; - HAL_GPIO_Init(GPIOD, &GPIO_InitStruct); - - /* USER CODE BEGIN TIM4_MspPostInit 1 */ - - /* USER CODE END TIM4_MspPostInit 1 */ - } else if (htim->Instance == TIM12) { - /* USER CODE BEGIN TIM12_MspPostInit 0 */ - - /* USER CODE END TIM12_MspPostInit 0 */ - - __HAL_RCC_GPIOB_CLK_ENABLE(); - /**TIM12 GPIO Configuration - PB14 ------> TIM12_CH1 - PB15 ------> TIM12_CH2 - */ - GPIO_InitStruct.Pin = GPIO_PIN_14 | GPIO_PIN_15; - GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; - GPIO_InitStruct.Pull = GPIO_NOPULL; - GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; - GPIO_InitStruct.Alternate = GPIO_AF2_TIM12; - HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); - - /* USER CODE BEGIN TIM12_MspPostInit 1 */ - - /* USER CODE END TIM12_MspPostInit 1 */ - } else if (htim->Instance == TIM15) { - /* USER CODE BEGIN TIM15_MspPostInit 0 */ - - /* USER CODE END TIM15_MspPostInit 0 */ - - __HAL_RCC_GPIOE_CLK_ENABLE(); - /**TIM15 GPIO Configuration - PE4 ------> TIM15_CH1N - PE5 ------> TIM15_CH1 - PE6 ------> TIM15_CH2 - */ - GPIO_InitStruct.Pin = GPIO_PIN_4 | GPIO_PIN_5 | GPIO_PIN_6; - GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; - GPIO_InitStruct.Pull = GPIO_NOPULL; - GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; - GPIO_InitStruct.Alternate = GPIO_AF4_TIM15; - HAL_GPIO_Init(GPIOE, &GPIO_InitStruct); - - /* USER CODE BEGIN TIM15_MspPostInit 1 */ - - /* USER CODE END TIM15_MspPostInit 1 */ - } else if (htim->Instance == TIM16) { - /* USER CODE BEGIN TIM16_MspPostInit 0 */ - - /* USER CODE END TIM16_MspPostInit 0 */ - - __HAL_RCC_GPIOB_CLK_ENABLE(); - /**TIM16 GPIO Configuration - PB6 ------> TIM16_CH1N - PB8 ------> TIM16_CH1 - */ - GPIO_InitStruct.Pin = GPIO_PIN_6 | GPIO_PIN_8; - GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; - GPIO_InitStruct.Pull = GPIO_NOPULL; - GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; - GPIO_InitStruct.Alternate = GPIO_AF1_TIM16; - HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); - - /* USER CODE BEGIN TIM16_MspPostInit 1 */ - - /* USER CODE END TIM16_MspPostInit 1 */ - } else if (htim->Instance == TIM17) { - /* USER CODE BEGIN TIM17_MspPostInit 0 */ - - /* USER CODE END TIM17_MspPostInit 0 */ - - __HAL_RCC_GPIOB_CLK_ENABLE(); - /**TIM17 GPIO Configuration - PB7 ------> TIM17_CH1N - PB9 ------> TIM17_CH1 - */ - GPIO_InitStruct.Pin = GPIO_PIN_7 | GPIO_PIN_9; - GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; - GPIO_InitStruct.Pull = GPIO_NOPULL; - GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; - GPIO_InitStruct.Alternate = GPIO_AF1_TIM17; - HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); - - /* USER CODE BEGIN TIM17_MspPostInit 1 */ - - /* USER CODE END TIM17_MspPostInit 1 */ - } else if (htim->Instance == TIM23) { - /* USER CODE BEGIN TIM23_MspPostInit 0 */ - - /* USER CODE END TIM23_MspPostInit 0 */ - - __HAL_RCC_GPIOF_CLK_ENABLE(); - /**TIM23 GPIO Configuration - PF3 ------> TIM23_CH4 - */ - GPIO_InitStruct.Pin = GPIO_PIN_3; - GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; - GPIO_InitStruct.Pull = GPIO_NOPULL; - GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; - GPIO_InitStruct.Alternate = GPIO_AF13_TIM23; - HAL_GPIO_Init(GPIOF, &GPIO_InitStruct); - - /* USER CODE BEGIN TIM23_MspPostInit 1 */ - - /* USER CODE END TIM23_MspPostInit 1 */ - } -} -/** - * @brief TIM_PWM MSP De-Initialization - * This function freeze the hardware resources used in this example - * @param htim_pwm: TIM_PWM handle pointer - * @retval None - */ -void HAL_TIM_PWM_MspDeInit(TIM_HandleTypeDef* htim_pwm) { - if (htim_pwm->Instance == TIM1) { - /* USER CODE BEGIN TIM1_MspDeInit 0 */ - - /* USER CODE END TIM1_MspDeInit 0 */ - /* Peripheral clock disable */ - __HAL_RCC_TIM1_CLK_DISABLE(); - /* USER CODE BEGIN TIM1_MspDeInit 1 */ - - /* USER CODE END TIM1_MspDeInit 1 */ - } else if (htim_pwm->Instance == TIM3) { - /* USER CODE BEGIN TIM3_MspDeInit 0 */ - - /* USER CODE END TIM3_MspDeInit 0 */ - /* Peripheral clock disable */ - __HAL_RCC_TIM3_CLK_DISABLE(); - /* USER CODE BEGIN TIM3_MspDeInit 1 */ - - /* USER CODE END TIM3_MspDeInit 1 */ - } else if (htim_pwm->Instance == TIM4) { - /* USER CODE BEGIN TIM4_MspDeInit 0 */ - - /* USER CODE END TIM4_MspDeInit 0 */ - /* Peripheral clock disable */ - __HAL_RCC_TIM4_CLK_DISABLE(); - /* USER CODE BEGIN TIM4_MspDeInit 1 */ - - /* USER CODE END TIM4_MspDeInit 1 */ - } else if (htim_pwm->Instance == TIM12) { - /* USER CODE BEGIN TIM12_MspDeInit 0 */ - - /* USER CODE END TIM12_MspDeInit 0 */ - /* Peripheral clock disable */ - __HAL_RCC_TIM12_CLK_DISABLE(); - /* USER CODE BEGIN TIM12_MspDeInit 1 */ - - /* USER CODE END TIM12_MspDeInit 1 */ - } else if (htim_pwm->Instance == TIM15) { - /* USER CODE BEGIN TIM15_MspDeInit 0 */ - - /* USER CODE END TIM15_MspDeInit 0 */ - /* Peripheral clock disable */ - __HAL_RCC_TIM15_CLK_DISABLE(); - /* USER CODE BEGIN TIM15_MspDeInit 1 */ - - /* USER CODE END TIM15_MspDeInit 1 */ - } -} - -/** - * @brief TIM_Base MSP De-Initialization - * This function freeze the hardware resources used in this example - * @param htim_base: TIM_Base handle pointer - * @retval None - */ -void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef* htim_base) { - if (htim_base->Instance == TIM2) { - /* USER CODE BEGIN TIM2_MspDeInit 0 */ - - /* USER CODE END TIM2_MspDeInit 0 */ - /* Peripheral clock disable */ - __HAL_RCC_TIM2_CLK_DISABLE(); - - /* TIM2 interrupt DeInit */ - HAL_NVIC_DisableIRQ(TIM2_IRQn); - /* USER CODE BEGIN TIM2_MspDeInit 1 */ - - /* USER CODE END TIM2_MspDeInit 1 */ - } else if (htim_base->Instance == TIM5) { - /* USER CODE BEGIN TIM5_MspDeInit 0 */ - - /* USER CODE END TIM5_MspDeInit 0 */ - /* Peripheral clock disable */ - __HAL_RCC_TIM5_CLK_DISABLE(); - - /* TIM5 interrupt DeInit */ - HAL_NVIC_DisableIRQ(TIM5_IRQn); - /* USER CODE BEGIN TIM5_MspDeInit 1 */ - - /* USER CODE END TIM5_MspDeInit 1 */ - } else if (htim_base->Instance == TIM7) { - /* USER CODE BEGIN TIM7_MspDeInit 0 */ - - /* USER CODE END TIM7_MspDeInit 0 */ - /* Peripheral clock disable */ - __HAL_RCC_TIM7_CLK_DISABLE(); - - /* TIM7 interrupt DeInit */ - HAL_NVIC_DisableIRQ(TIM7_IRQn); - /* USER CODE BEGIN TIM7_MspDeInit 1 */ - - /* USER CODE END TIM7_MspDeInit 1 */ - } else if (htim_base->Instance == TIM16) { - /* USER CODE BEGIN TIM16_MspDeInit 0 */ - - /* USER CODE END TIM16_MspDeInit 0 */ - /* Peripheral clock disable */ - __HAL_RCC_TIM16_CLK_DISABLE(); - /* USER CODE BEGIN TIM16_MspDeInit 1 */ - - /* USER CODE END TIM16_MspDeInit 1 */ - } else if (htim_base->Instance == TIM17) { - /* USER CODE BEGIN TIM17_MspDeInit 0 */ - - /* USER CODE END TIM17_MspDeInit 0 */ - /* Peripheral clock disable */ - __HAL_RCC_TIM17_CLK_DISABLE(); - /* USER CODE BEGIN TIM17_MspDeInit 1 */ - - /* USER CODE END TIM17_MspDeInit 1 */ - } else if (htim_base->Instance == TIM24) { - /* USER CODE BEGIN TIM24_MspDeInit 0 */ - - /* USER CODE END TIM24_MspDeInit 0 */ - /* Peripheral clock disable */ - __HAL_RCC_TIM24_CLK_DISABLE(); - - /* TIM24 interrupt DeInit */ - HAL_NVIC_DisableIRQ(TIM24_IRQn); - /* USER CODE BEGIN TIM24_MspDeInit 1 */ - - /* USER CODE END TIM24_MspDeInit 1 */ } -} - -/** - * @brief TIM_Encoder MSP De-Initialization - * This function freeze the hardware resources used in this example - * @param htim_encoder: TIM_Encoder handle pointer - * @retval None - */ -void HAL_TIM_Encoder_MspDeInit(TIM_HandleTypeDef* htim_encoder) { - if (htim_encoder->Instance == TIM8) { - /* USER CODE BEGIN TIM8_MspDeInit 0 */ - - /* USER CODE END TIM8_MspDeInit 0 */ - /* Peripheral clock disable */ - __HAL_RCC_TIM8_CLK_DISABLE(); - - /**TIM8 GPIO Configuration - PC6 ------> TIM8_CH1 - PC7 ------> TIM8_CH2 - */ - HAL_GPIO_DeInit(GPIOC, GPIO_PIN_6 | GPIO_PIN_7); - - /* TIM8 interrupt DeInit */ - HAL_NVIC_DisableIRQ(TIM8_TRG_COM_TIM14_IRQn); - /* USER CODE BEGIN TIM8_MspDeInit 1 */ - - /* USER CODE END TIM8_MspDeInit 1 */ - } -} - -/** - * @brief TIM_OC MSP De-Initialization - * This function freeze the hardware resources used in this example - * @param htim_oc: TIM_OC handle pointer - * @retval None - */ -void HAL_TIM_OC_MspDeInit(TIM_HandleTypeDef* htim_oc) { - if (htim_oc->Instance == TIM15) { - /* USER CODE BEGIN TIM15_MspDeInit 0 */ - - /* USER CODE END TIM15_MspDeInit 0 */ - /* Peripheral clock disable */ - __HAL_RCC_TIM15_CLK_DISABLE(); - /* USER CODE BEGIN TIM15_MspDeInit 1 */ - - /* USER CODE END TIM15_MspDeInit 1 */ - } -} - -/** - * @brief TIM_IC MSP De-Initialization - * This function freeze the hardware resources used in this example - * @param htim_ic: TIM_IC handle pointer - * @retval None - */ -void HAL_TIM_IC_MspDeInit(TIM_HandleTypeDef* htim_ic) { - if (htim_ic->Instance == TIM23) { - /* USER CODE BEGIN TIM23_MspDeInit 0 */ - - /* USER CODE END TIM23_MspDeInit 0 */ - /* Peripheral clock disable */ - __HAL_RCC_TIM23_CLK_DISABLE(); - - /**TIM23 GPIO Configuration - PF0 ------> TIM23_CH1 - PF3 ------> TIM23_CH4 - */ - HAL_GPIO_DeInit(GPIOF, GPIO_PIN_0 | GPIO_PIN_3); - - /* TIM23 interrupt DeInit */ - HAL_NVIC_DisableIRQ(TIM23_IRQn); - /* USER CODE BEGIN TIM23_MspDeInit 1 */ - - /* USER CODE END TIM23_MspDeInit 1 */ - } -} - /** * @brief UART MSP Initialization * This function configures the hardware resources used in this example diff --git a/Core/Src/stm32h7xx_it.c b/Core/Src/stm32h7xx_it.c index bf049b1b..6b1e7789 100644 --- a/Core/Src/stm32h7xx_it.c +++ b/Core/Src/stm32h7xx_it.c @@ -422,16 +422,8 @@ void FDCAN3_IT0_IRQHandler(void) { HAL_FDCAN_IRQHandler(&hfdcan1); } */ void FDCAN3_IT1_IRQHandler(void) { HAL_FDCAN_IRQHandler(&hfdcan1); } -/** - * @brief This function handles DMA1 stream0 global interrupt. - */ - void FMAC_IRQHandler(void) { HAL_FMAC_IRQHandler(&hfmac); } -/** - * @brief This function handles SPI3 global interrupt. - */ - /** * @brief This function handles Ethernet global interrupt. */ diff --git a/deps/ST-LIB b/deps/ST-LIB index 65d36f43..019403b6 160000 --- a/deps/ST-LIB +++ b/deps/ST-LIB @@ -1 +1 @@ -Subproject commit 65d36f43533e461defac8e84f3e4f7a8ae62a304 +Subproject commit 019403b6af6d71e70bc51d1c508aa19e7d422b3e