From d6646b5a94ee8b6c2b02a6229f176b0e984c79ee Mon Sep 17 00:00:00 2001 From: Oskar Weigl Date: Fri, 22 Sep 2017 22:37:16 -0700 Subject: [PATCH] Fix newest Cube code was v3.2, now correctly v3.3 --- Inc/main.h | 32 ++++++++++---------- Inc/stm32f4xx_it.h | 2 +- Odrive.ioc | 75 +++++++++++++++++++++++----------------------- Src/adc.c | 34 ++++++++++----------- Src/gpio.c | 42 ++++++++++---------------- Src/stm32f4xx_it.c | 28 ++++++++--------- 6 files changed, 99 insertions(+), 114 deletions(-) diff --git a/Inc/main.h b/Inc/main.h index dfaf2685..a2fdb772 100644 --- a/Inc/main.h +++ b/Inc/main.h @@ -79,21 +79,22 @@ #define M1_IC_GPIO_Port GPIOC #define M1_IB_Pin GPIO_PIN_3 #define M1_IB_GPIO_Port GPIOC -#define VBUS_S_Pin GPIO_PIN_0 -#define VBUS_S_GPIO_Port GPIOA -#define M1_TEMP_Pin GPIO_PIN_1 -#define M1_TEMP_GPIO_Port GPIOA -#define AUX_I_Pin GPIO_PIN_2 -#define AUX_I_GPIO_Port GPIOA +#define GPIO_1_Pin GPIO_PIN_0 +#define GPIO_1_GPIO_Port GPIOA +#define GPIO_1_EXTI_IRQn EXTI0_IRQn +#define GPIO_2_Pin GPIO_PIN_1 +#define GPIO_2_GPIO_Port GPIOA +#define GPIO_3_Pin GPIO_PIN_2 +#define GPIO_3_GPIO_Port GPIOA +#define GPIO_3_EXTI_IRQn EXTI2_IRQn #define GPIO_4_Pin GPIO_PIN_3 #define GPIO_4_GPIO_Port GPIOA -#define GPIO_3_Pin GPIO_PIN_4 -#define GPIO_3_GPIO_Port GPIOA -#define GPIO_3_EXTI_IRQn EXTI4_IRQn -#define GPIO_2_Pin GPIO_PIN_5 -#define GPIO_2_GPIO_Port GPIOA -#define AUX_V_Pin GPIO_PIN_6 -#define AUX_V_GPIO_Port GPIOA +#define M1_TEMP_Pin GPIO_PIN_4 +#define M1_TEMP_GPIO_Port GPIOA +#define AUX_I_Pin GPIO_PIN_5 +#define AUX_I_GPIO_Port GPIOA +#define VBUS_S_Pin GPIO_PIN_6 +#define VBUS_S_GPIO_Port GPIOA #define M1_AL_Pin GPIO_PIN_7 #define M1_AL_GPIO_Port GPIOA #define AUX_TEMP_Pin GPIO_PIN_4 @@ -104,9 +105,8 @@ #define M1_BL_GPIO_Port GPIOB #define M1_CL_Pin GPIO_PIN_1 #define M1_CL_GPIO_Port GPIOB -#define GPIO_1_Pin GPIO_PIN_2 -#define GPIO_1_GPIO_Port GPIOB -#define GPIO_1_EXTI_IRQn EXTI2_IRQn +#define GPIO_5_Pin GPIO_PIN_2 +#define GPIO_5_GPIO_Port GPIOB #define AUX_L_Pin GPIO_PIN_10 #define AUX_L_GPIO_Port GPIOB #define AUX_H_Pin GPIO_PIN_11 diff --git a/Inc/stm32f4xx_it.h b/Inc/stm32f4xx_it.h index caaf7ef3..74b19b28 100644 --- a/Inc/stm32f4xx_it.h +++ b/Inc/stm32f4xx_it.h @@ -52,8 +52,8 @@ void BusFault_Handler(void); void UsageFault_Handler(void); void DebugMon_Handler(void); void SysTick_Handler(void); +void EXTI0_IRQHandler(void); void EXTI2_IRQHandler(void); -void EXTI4_IRQHandler(void); void ADC_IRQHandler(void); void OTG_FS_IRQHandler(void); diff --git a/Odrive.ioc b/Odrive.ioc index d99a7c69..b7bd70f6 100755 --- a/Odrive.ioc +++ b/Odrive.ioc @@ -1,6 +1,6 @@ #MicroXplorer Configuration settings - do not modify -ADC1.Channel-0\#ChannelRegularConversion=ADC_CHANNEL_0 -ADC1.Channel-1\#ChannelInjectedConversion=ADC_CHANNEL_0 +ADC1.Channel-0\#ChannelRegularConversion=ADC_CHANNEL_6 +ADC1.Channel-1\#ChannelInjectedConversion=ADC_CHANNEL_6 ADC1.ClockPrescaler=ADC_CLOCK_SYNC_PCLK_DIV4 ADC1.ContinuousConvMode=DISABLE ADC1.DMAContinuousRequests=DISABLE @@ -169,8 +169,8 @@ MxDb.Version=DB.4.0.220 NVIC.ADC_IRQn=true\:5\:0\:false\:false\:true\:true NVIC.BusFault_IRQn=true\:0\:0\:false\:false\:true\:false NVIC.DebugMonitor_IRQn=true\:0\:0\:false\:false\:true\:false +NVIC.EXTI0_IRQn=true\:0\:0\:false\:false\:true\:false NVIC.EXTI2_IRQn=true\:0\:0\:false\:false\:true\:false -NVIC.EXTI4_IRQn=true\:0\:0\:false\:false\:true\:false NVIC.HardFault_IRQn=true\:0\:0\:false\:false\:true\:false NVIC.MemoryManagement_IRQn=true\:0\:0\:false\:false\:true\:false NVIC.NonMaskableInt_IRQn=true\:0\:0\:false\:false\:true\:false @@ -180,12 +180,16 @@ NVIC.PriorityGroup=NVIC_PRIORITYGROUP_4 NVIC.SVCall_IRQn=true\:0\:0\:false\:false\:false\:false NVIC.SysTick_IRQn=true\:15\:0\:false\:false\:true\:true NVIC.UsageFault_IRQn=true\:0\:0\:false\:false\:true\:false -PA0-WKUP.GPIOParameters=GPIO_Label -PA0-WKUP.GPIO_Label=VBUS_S -PA0-WKUP.Signal=ADCx_IN0 -PA1.GPIOParameters=GPIO_Label -PA1.GPIO_Label=M1_TEMP -PA1.Signal=ADCx_IN1 +PA0-WKUP.GPIOParameters=GPIO_PuPd,GPIO_Label +PA0-WKUP.GPIO_Label=GPIO_1 +PA0-WKUP.GPIO_PuPd=GPIO_PULLDOWN +PA0-WKUP.Locked=true +PA0-WKUP.Signal=GPXTI0 +PA1.GPIOParameters=GPIO_PuPd,GPIO_Label +PA1.GPIO_Label=GPIO_2 +PA1.GPIO_PuPd=GPIO_NOPULL +PA1.Locked=true +PA1.Signal=GPIO_Input PA10.GPIOParameters=GPIO_Label PA10.GPIO_Label=M0_CH PA10.Locked=true @@ -202,26 +206,27 @@ PA15.GPIOParameters=GPIO_Label PA15.GPIO_Label=M0_ENC_Z PA15.Locked=true PA15.Signal=GPIO_Input -PA2.GPIOParameters=GPIO_Label -PA2.GPIO_Label=AUX_I -PA2.Signal=ADCx_IN2 +PA2.GPIOParameters=GPIO_PuPd,GPIO_Label +PA2.GPIO_Label=GPIO_3 +PA2.GPIO_PuPd=GPIO_PULLDOWN +PA2.Locked=true +PA2.Signal=GPXTI2 PA3.GPIOParameters=GPIO_PuPd,GPIO_Label PA3.GPIO_Label=GPIO_4 -PA3.GPIO_PuPd=GPIO_PULLDOWN +PA3.GPIO_PuPd=GPIO_NOPULL PA3.Locked=true PA3.Signal=GPIO_Input -PA4.GPIOParameters=GPIO_PuPd,GPIO_Label -PA4.GPIO_Label=GPIO_3 -PA4.GPIO_PuPd=GPIO_PULLDOWN +PA4.GPIOParameters=GPIO_Label +PA4.GPIO_Label=M1_TEMP PA4.Locked=true -PA4.Signal=GPXTI4 -PA5.GPIOParameters=GPIO_PuPd,GPIO_Label -PA5.GPIO_Label=GPIO_2 -PA5.GPIO_PuPd=GPIO_PULLDOWN +PA4.Signal=ADCx_IN4 +PA5.GPIOParameters=GPIO_Label +PA5.GPIO_Label=AUX_I PA5.Locked=true -PA5.Signal=GPIO_Input +PA5.Signal=ADCx_IN5 PA6.GPIOParameters=GPIO_Label -PA6.GPIO_Label=AUX_V +PA6.GPIO_Label=VBUS_S +PA6.Locked=true PA6.Signal=ADCx_IN6 PA7.GPIOParameters=GPIO_Label PA7.GPIO_Label=M1_AL @@ -273,11 +278,10 @@ PB15.GPIO_Label=M0_CL PB15.Locked=true PB15.Mode=PWM Generation3 CH3 CH3N PB15.Signal=TIM1_CH3N -PB2.GPIOParameters=GPIO_PuPd,GPIO_Label -PB2.GPIO_Label=GPIO_1 -PB2.GPIO_PuPd=GPIO_PULLDOWN +PB2.GPIOParameters=GPIO_Label +PB2.GPIO_Label=GPIO_5 PB2.Locked=true -PB2.Signal=GPXTI2 +PB2.Signal=GPIO_Input PB3.GPIOParameters=GPIO_Label PB3.GPIO_Label=M1_ENC_Z PB3.Locked=true @@ -429,12 +433,6 @@ RCC.VCOI2SOutputFreq_Value=384000000 RCC.VCOInputFreq_Value=2000000 RCC.VCOOutputFreq_Value=336000000 RCC.VcooutputI2S=192000000 -SH.ADCx_IN0.0=ADC1_IN0,IN0 -SH.ADCx_IN0.1=ADC2_IN0,IN0 -SH.ADCx_IN0.ConfNb=2 -SH.ADCx_IN1.0=ADC1_IN1,IN1 -SH.ADCx_IN1.1=ADC2_IN1,IN1 -SH.ADCx_IN1.ConfNb=2 SH.ADCx_IN10.0=ADC1_IN10,IN10 SH.ADCx_IN10.1=ADC2_IN10,IN10 SH.ADCx_IN10.2=ADC3_IN10,IN10 @@ -457,16 +455,19 @@ SH.ADCx_IN14.ConfNb=2 SH.ADCx_IN15.0=ADC1_IN15,IN15 SH.ADCx_IN15.1=ADC2_IN15,IN15 SH.ADCx_IN15.ConfNb=2 -SH.ADCx_IN2.0=ADC1_IN2,IN2 -SH.ADCx_IN2.1=ADC2_IN2,IN2 -SH.ADCx_IN2.ConfNb=2 +SH.ADCx_IN4.0=ADC1_IN4,IN4 +SH.ADCx_IN4.1=ADC2_IN4,IN4 +SH.ADCx_IN4.ConfNb=2 +SH.ADCx_IN5.0=ADC1_IN5,IN5 +SH.ADCx_IN5.1=ADC2_IN5,IN5 +SH.ADCx_IN5.ConfNb=2 SH.ADCx_IN6.0=ADC1_IN6,IN6 SH.ADCx_IN6.1=ADC2_IN6,IN6 SH.ADCx_IN6.ConfNb=2 +SH.GPXTI0.0=GPIO_EXTI0 +SH.GPXTI0.ConfNb=1 SH.GPXTI2.0=GPIO_EXTI2 SH.GPXTI2.ConfNb=1 -SH.GPXTI4.0=GPIO_EXTI4 -SH.GPXTI4.ConfNb=1 SH.S_TIM1_CH1.0=TIM1_CH1,PWM Generation1 CH1 CH1N SH.S_TIM1_CH1.ConfNb=1 SH.S_TIM1_CH2.0=TIM1_CH2,PWM Generation2 CH2 CH2N diff --git a/Src/adc.c b/Src/adc.c index 7f4fb173..6069ef4c 100644 --- a/Src/adc.c +++ b/Src/adc.c @@ -49,6 +49,7 @@ /* Includes ------------------------------------------------------------------*/ #include "adc.h" + #include "gpio.h" /* USER CODE BEGIN 0 */ @@ -59,7 +60,6 @@ #else /* USER CODE END 0 */ - ADC_HandleTypeDef hadc1; ADC_HandleTypeDef hadc2; ADC_HandleTypeDef hadc3; @@ -91,7 +91,7 @@ void MX_ADC1_Init(void) /**Configure for the selected ADC regular channel its corresponding rank in the sequencer and its sample time. */ - sConfig.Channel = ADC_CHANNEL_0; + sConfig.Channel = ADC_CHANNEL_6; sConfig.Rank = 1; sConfig.SamplingTime = ADC_SAMPLETIME_3CYCLES; if (HAL_ADC_ConfigChannel(&hadc1, &sConfig) != HAL_OK) @@ -101,7 +101,7 @@ void MX_ADC1_Init(void) /**Configures for the selected ADC injected channel its corresponding rank in the sequencer and its sample time */ - sConfigInjected.InjectedChannel = ADC_CHANNEL_0; + sConfigInjected.InjectedChannel = ADC_CHANNEL_6; sConfigInjected.InjectedRank = 1; sConfigInjected.InjectedNbrOfConversion = 1; sConfigInjected.InjectedSamplingTime = ADC_SAMPLETIME_3CYCLES; @@ -238,9 +238,8 @@ void HAL_ADC_MspInit(ADC_HandleTypeDef* adcHandle) PC1 ------> ADC1_IN11 PC2 ------> ADC1_IN12 PC3 ------> ADC1_IN13 - PA0-WKUP ------> ADC1_IN0 - PA1 ------> ADC1_IN1 - PA2 ------> ADC1_IN2 + PA4 ------> ADC1_IN4 + PA5 ------> ADC1_IN5 PA6 ------> ADC1_IN6 PC4 ------> ADC1_IN14 PC5 ------> ADC1_IN15 @@ -251,7 +250,7 @@ void HAL_ADC_MspInit(ADC_HandleTypeDef* adcHandle) GPIO_InitStruct.Pull = GPIO_NOPULL; HAL_GPIO_Init(GPIOC, &GPIO_InitStruct); - GPIO_InitStruct.Pin = VBUS_S_Pin|M1_TEMP_Pin|AUX_I_Pin|AUX_V_Pin; + GPIO_InitStruct.Pin = M1_TEMP_Pin|AUX_I_Pin|VBUS_S_Pin; GPIO_InitStruct.Mode = GPIO_MODE_ANALOG; GPIO_InitStruct.Pull = GPIO_NOPULL; HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); @@ -276,9 +275,8 @@ void HAL_ADC_MspInit(ADC_HandleTypeDef* adcHandle) PC1 ------> ADC2_IN11 PC2 ------> ADC2_IN12 PC3 ------> ADC2_IN13 - PA0-WKUP ------> ADC2_IN0 - PA1 ------> ADC2_IN1 - PA2 ------> ADC2_IN2 + PA4 ------> ADC2_IN4 + PA5 ------> ADC2_IN5 PA6 ------> ADC2_IN6 PC4 ------> ADC2_IN14 PC5 ------> ADC2_IN15 @@ -289,7 +287,7 @@ void HAL_ADC_MspInit(ADC_HandleTypeDef* adcHandle) GPIO_InitStruct.Pull = GPIO_NOPULL; HAL_GPIO_Init(GPIOC, &GPIO_InitStruct); - GPIO_InitStruct.Pin = VBUS_S_Pin|M1_TEMP_Pin|AUX_I_Pin|AUX_V_Pin; + GPIO_InitStruct.Pin = M1_TEMP_Pin|AUX_I_Pin|VBUS_S_Pin; GPIO_InitStruct.Mode = GPIO_MODE_ANALOG; GPIO_InitStruct.Pull = GPIO_NOPULL; HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); @@ -345,9 +343,8 @@ void HAL_ADC_MspDeInit(ADC_HandleTypeDef* adcHandle) PC1 ------> ADC1_IN11 PC2 ------> ADC1_IN12 PC3 ------> ADC1_IN13 - PA0-WKUP ------> ADC1_IN0 - PA1 ------> ADC1_IN1 - PA2 ------> ADC1_IN2 + PA4 ------> ADC1_IN4 + PA5 ------> ADC1_IN5 PA6 ------> ADC1_IN6 PC4 ------> ADC1_IN14 PC5 ------> ADC1_IN15 @@ -355,7 +352,7 @@ void HAL_ADC_MspDeInit(ADC_HandleTypeDef* adcHandle) HAL_GPIO_DeInit(GPIOC, M0_IB_Pin|M0_IC_Pin|M1_IC_Pin|M1_IB_Pin |AUX_TEMP_Pin|M0_TEMP_Pin); - HAL_GPIO_DeInit(GPIOA, VBUS_S_Pin|M1_TEMP_Pin|AUX_I_Pin|AUX_V_Pin); + HAL_GPIO_DeInit(GPIOA, M1_TEMP_Pin|AUX_I_Pin|VBUS_S_Pin); /* ADC1 interrupt Deinit */ /* USER CODE BEGIN ADC1:ADC_IRQn disable */ @@ -383,9 +380,8 @@ void HAL_ADC_MspDeInit(ADC_HandleTypeDef* adcHandle) PC1 ------> ADC2_IN11 PC2 ------> ADC2_IN12 PC3 ------> ADC2_IN13 - PA0-WKUP ------> ADC2_IN0 - PA1 ------> ADC2_IN1 - PA2 ------> ADC2_IN2 + PA4 ------> ADC2_IN4 + PA5 ------> ADC2_IN5 PA6 ------> ADC2_IN6 PC4 ------> ADC2_IN14 PC5 ------> ADC2_IN15 @@ -393,7 +389,7 @@ void HAL_ADC_MspDeInit(ADC_HandleTypeDef* adcHandle) HAL_GPIO_DeInit(GPIOC, M0_IB_Pin|M0_IC_Pin|M1_IC_Pin|M1_IB_Pin |AUX_TEMP_Pin|M0_TEMP_Pin); - HAL_GPIO_DeInit(GPIOA, VBUS_S_Pin|M1_TEMP_Pin|AUX_I_Pin|AUX_V_Pin); + HAL_GPIO_DeInit(GPIOA, M1_TEMP_Pin|AUX_I_Pin|VBUS_S_Pin); /* ADC2 interrupt Deinit */ /* USER CODE BEGIN ADC2:ADC_IRQn disable */ diff --git a/Src/gpio.c b/Src/gpio.c index 9dfb3836..a7752882 100644 --- a/Src/gpio.c +++ b/Src/gpio.c @@ -101,22 +101,22 @@ void MX_GPIO_Init(void) HAL_GPIO_Init(GPIOC, &GPIO_InitStruct); /*Configure GPIO pins : PAPin PAPin */ - GPIO_InitStruct.Pin = GPIO_4_Pin|GPIO_2_Pin; - GPIO_InitStruct.Mode = GPIO_MODE_INPUT; + GPIO_InitStruct.Pin = GPIO_1_Pin|GPIO_3_Pin; + GPIO_InitStruct.Mode = GPIO_MODE_IT_RISING; GPIO_InitStruct.Pull = GPIO_PULLDOWN; HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); - /*Configure GPIO pin : PtPin */ - GPIO_InitStruct.Pin = GPIO_3_Pin; - GPIO_InitStruct.Mode = GPIO_MODE_IT_RISING; - GPIO_InitStruct.Pull = GPIO_PULLDOWN; - HAL_GPIO_Init(GPIO_3_GPIO_Port, &GPIO_InitStruct); + /*Configure GPIO pins : PAPin PAPin PAPin */ + GPIO_InitStruct.Pin = GPIO_2_Pin|GPIO_4_Pin|M0_ENC_Z_Pin; + GPIO_InitStruct.Mode = GPIO_MODE_INPUT; + GPIO_InitStruct.Pull = GPIO_NOPULL; + HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); - /*Configure GPIO pin : PtPin */ - GPIO_InitStruct.Pin = GPIO_1_Pin; - GPIO_InitStruct.Mode = GPIO_MODE_IT_RISING; - GPIO_InitStruct.Pull = GPIO_PULLDOWN; - HAL_GPIO_Init(GPIO_1_GPIO_Port, &GPIO_InitStruct); + /*Configure GPIO pins : PBPin PBPin */ + GPIO_InitStruct.Pin = GPIO_5_Pin|M1_ENC_Z_Pin; + GPIO_InitStruct.Mode = GPIO_MODE_INPUT; + GPIO_InitStruct.Pull = GPIO_NOPULL; + HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); /*Configure GPIO pin : PtPin */ GPIO_InitStruct.Pin = EN_GATE_Pin; @@ -125,31 +125,19 @@ void MX_GPIO_Init(void) GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; HAL_GPIO_Init(EN_GATE_GPIO_Port, &GPIO_InitStruct); - /*Configure GPIO pin : PtPin */ - GPIO_InitStruct.Pin = M0_ENC_Z_Pin; - GPIO_InitStruct.Mode = GPIO_MODE_INPUT; - GPIO_InitStruct.Pull = GPIO_NOPULL; - HAL_GPIO_Init(M0_ENC_Z_GPIO_Port, &GPIO_InitStruct); - /*Configure GPIO pin : PtPin */ GPIO_InitStruct.Pin = nFAULT_Pin; GPIO_InitStruct.Mode = GPIO_MODE_INPUT; GPIO_InitStruct.Pull = GPIO_PULLUP; HAL_GPIO_Init(nFAULT_GPIO_Port, &GPIO_InitStruct); - /*Configure GPIO pin : PtPin */ - GPIO_InitStruct.Pin = M1_ENC_Z_Pin; - GPIO_InitStruct.Mode = GPIO_MODE_INPUT; - GPIO_InitStruct.Pull = GPIO_NOPULL; - HAL_GPIO_Init(M1_ENC_Z_GPIO_Port, &GPIO_InitStruct); - /* EXTI interrupt init*/ + HAL_NVIC_SetPriority(EXTI0_IRQn, 0, 0); + HAL_NVIC_EnableIRQ(EXTI0_IRQn); + HAL_NVIC_SetPriority(EXTI2_IRQn, 0, 0); HAL_NVIC_EnableIRQ(EXTI2_IRQn); - HAL_NVIC_SetPriority(EXTI4_IRQn, 0, 0); - HAL_NVIC_EnableIRQ(EXTI4_IRQn); - } /* USER CODE BEGIN 2 */ diff --git a/Src/stm32f4xx_it.c b/Src/stm32f4xx_it.c index c9bf4b4b..8b218e23 100644 --- a/Src/stm32f4xx_it.c +++ b/Src/stm32f4xx_it.c @@ -171,6 +171,20 @@ void SysTick_Handler(void) /* please refer to the startup file (startup_stm32f4xx.s). */ /******************************************************************************/ +/** +* @brief This function handles EXTI line0 interrupt. +*/ +void EXTI0_IRQHandler(void) +{ + /* USER CODE BEGIN EXTI0_IRQn 0 */ + + /* USER CODE END EXTI0_IRQn 0 */ + HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_0); + /* USER CODE BEGIN EXTI0_IRQn 1 */ + + /* USER CODE END EXTI0_IRQn 1 */ +} + /** * @brief This function handles EXTI line2 interrupt. */ @@ -185,20 +199,6 @@ void EXTI2_IRQHandler(void) /* USER CODE END EXTI2_IRQn 1 */ } -/** -* @brief This function handles EXTI line4 interrupt. -*/ -void EXTI4_IRQHandler(void) -{ - /* USER CODE BEGIN EXTI4_IRQn 0 */ - - /* USER CODE END EXTI4_IRQn 0 */ - HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_4); - /* USER CODE BEGIN EXTI4_IRQn 1 */ - - /* USER CODE END EXTI4_IRQn 1 */ -} - /** * @brief This function handles ADC1, ADC2 and ADC3 global interrupts. */