|
|
@ -36,8 +36,9 @@ void MX_TIM4_Init(void) |
|
|
|
|
|
|
|
/* USER CODE END TIM4_Init 0 */ |
|
|
|
|
|
|
|
TIM_Encoder_InitTypeDef sConfig = {0}; |
|
|
|
TIM_ClockConfigTypeDef sClockSourceConfig = {0}; |
|
|
|
TIM_MasterConfigTypeDef sMasterConfig = {0}; |
|
|
|
TIM_IC_InitTypeDef sConfigIC = {0}; |
|
|
|
|
|
|
|
/* USER CODE BEGIN TIM4_Init 1 */ |
|
|
|
|
|
|
@ -47,17 +48,17 @@ void MX_TIM4_Init(void) |
|
|
|
htim4.Init.CounterMode = TIM_COUNTERMODE_UP; |
|
|
|
htim4.Init.Period = 65535; |
|
|
|
htim4.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1; |
|
|
|
htim4.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE; |
|
|
|
sConfig.EncoderMode = TIM_ENCODERMODE_TI12; |
|
|
|
sConfig.IC1Polarity = TIM_ICPOLARITY_RISING; |
|
|
|
sConfig.IC1Selection = TIM_ICSELECTION_DIRECTTI; |
|
|
|
sConfig.IC1Prescaler = TIM_ICPSC_DIV1; |
|
|
|
sConfig.IC1Filter = 0; |
|
|
|
sConfig.IC2Polarity = TIM_ICPOLARITY_RISING; |
|
|
|
sConfig.IC2Selection = TIM_ICSELECTION_DIRECTTI; |
|
|
|
sConfig.IC2Prescaler = TIM_ICPSC_DIV1; |
|
|
|
sConfig.IC2Filter = 0; |
|
|
|
if (HAL_TIM_Encoder_Init(&htim4, &sConfig) != HAL_OK) |
|
|
|
htim4.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_ENABLE; |
|
|
|
if (HAL_TIM_Base_Init(&htim4) != HAL_OK) |
|
|
|
{ |
|
|
|
Error_Handler(); |
|
|
|
} |
|
|
|
sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL; |
|
|
|
if (HAL_TIM_ConfigClockSource(&htim4, &sClockSourceConfig) != HAL_OK) |
|
|
|
{ |
|
|
|
Error_Handler(); |
|
|
|
} |
|
|
|
if (HAL_TIM_IC_Init(&htim4) != HAL_OK) |
|
|
|
{ |
|
|
|
Error_Handler(); |
|
|
|
} |
|
|
@ -67,6 +68,18 @@ void MX_TIM4_Init(void) |
|
|
|
{ |
|
|
|
Error_Handler(); |
|
|
|
} |
|
|
|
sConfigIC.ICPolarity = TIM_INPUTCHANNELPOLARITY_RISING; |
|
|
|
sConfigIC.ICSelection = TIM_ICSELECTION_DIRECTTI; |
|
|
|
sConfigIC.ICPrescaler = TIM_ICPSC_DIV1; |
|
|
|
sConfigIC.ICFilter = 0; |
|
|
|
if (HAL_TIM_IC_ConfigChannel(&htim4, &sConfigIC, TIM_CHANNEL_1) != HAL_OK) |
|
|
|
{ |
|
|
|
Error_Handler(); |
|
|
|
} |
|
|
|
if (HAL_TIM_IC_ConfigChannel(&htim4, &sConfigIC, TIM_CHANNEL_2) != HAL_OK) |
|
|
|
{ |
|
|
|
Error_Handler(); |
|
|
|
} |
|
|
|
/* USER CODE BEGIN TIM4_Init 2 */ |
|
|
|
|
|
|
|
/* USER CODE END TIM4_Init 2 */ |
|
|
@ -113,8 +126,8 @@ void MX_TIM8_Init(void) |
|
|
|
|
|
|
|
/* USER CODE END TIM8_Init 0 */ |
|
|
|
|
|
|
|
TIM_Encoder_InitTypeDef sConfig = {0}; |
|
|
|
TIM_MasterConfigTypeDef sMasterConfig = {0}; |
|
|
|
TIM_IC_InitTypeDef sConfigIC = {0}; |
|
|
|
|
|
|
|
/* USER CODE BEGIN TIM8_Init 1 */ |
|
|
|
|
|
|
@ -125,17 +138,8 @@ void MX_TIM8_Init(void) |
|
|
|
htim8.Init.Period = 65535; |
|
|
|
htim8.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1; |
|
|
|
htim8.Init.RepetitionCounter = 0; |
|
|
|
htim8.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE; |
|
|
|
sConfig.EncoderMode = TIM_ENCODERMODE_TI12; |
|
|
|
sConfig.IC1Polarity = TIM_ICPOLARITY_RISING; |
|
|
|
sConfig.IC1Selection = TIM_ICSELECTION_DIRECTTI; |
|
|
|
sConfig.IC1Prescaler = TIM_ICPSC_DIV1; |
|
|
|
sConfig.IC1Filter = 0; |
|
|
|
sConfig.IC2Polarity = TIM_ICPOLARITY_RISING; |
|
|
|
sConfig.IC2Selection = TIM_ICSELECTION_DIRECTTI; |
|
|
|
sConfig.IC2Prescaler = TIM_ICPSC_DIV1; |
|
|
|
sConfig.IC2Filter = 0; |
|
|
|
if (HAL_TIM_Encoder_Init(&htim8, &sConfig) != HAL_OK) |
|
|
|
htim8.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_ENABLE; |
|
|
|
if (HAL_TIM_IC_Init(&htim8) != HAL_OK) |
|
|
|
{ |
|
|
|
Error_Handler(); |
|
|
|
} |
|
|
@ -145,17 +149,29 @@ void MX_TIM8_Init(void) |
|
|
|
{ |
|
|
|
Error_Handler(); |
|
|
|
} |
|
|
|
sConfigIC.ICPolarity = TIM_INPUTCHANNELPOLARITY_RISING; |
|
|
|
sConfigIC.ICSelection = TIM_ICSELECTION_DIRECTTI; |
|
|
|
sConfigIC.ICPrescaler = TIM_ICPSC_DIV1; |
|
|
|
sConfigIC.ICFilter = 0; |
|
|
|
if (HAL_TIM_IC_ConfigChannel(&htim8, &sConfigIC, TIM_CHANNEL_2) != HAL_OK) |
|
|
|
{ |
|
|
|
Error_Handler(); |
|
|
|
} |
|
|
|
if (HAL_TIM_IC_ConfigChannel(&htim8, &sConfigIC, TIM_CHANNEL_3) != HAL_OK) |
|
|
|
{ |
|
|
|
Error_Handler(); |
|
|
|
} |
|
|
|
/* USER CODE BEGIN TIM8_Init 2 */ |
|
|
|
|
|
|
|
/* USER CODE END TIM8_Init 2 */ |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
void HAL_TIM_Encoder_MspInit(TIM_HandleTypeDef* tim_encoderHandle) |
|
|
|
void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* tim_baseHandle) |
|
|
|
{ |
|
|
|
|
|
|
|
GPIO_InitTypeDef GPIO_InitStruct = {0}; |
|
|
|
if(tim_encoderHandle->Instance==TIM4) |
|
|
|
if(tim_baseHandle->Instance==TIM4) |
|
|
|
{ |
|
|
|
/* USER CODE BEGIN TIM4_MspInit 0 */ |
|
|
|
|
|
|
@ -170,16 +186,40 @@ void HAL_TIM_Encoder_MspInit(TIM_HandleTypeDef* tim_encoderHandle) |
|
|
|
*/ |
|
|
|
GPIO_InitStruct.Pin = GPIO_PIN_12|GPIO_PIN_13; |
|
|
|
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; |
|
|
|
GPIO_InitStruct.Pull = GPIO_PULLUP; |
|
|
|
GPIO_InitStruct.Pull = GPIO_NOPULL; |
|
|
|
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; |
|
|
|
GPIO_InitStruct.Alternate = GPIO_AF2_TIM4; |
|
|
|
HAL_GPIO_Init(GPIOD, &GPIO_InitStruct); |
|
|
|
|
|
|
|
/* TIM4 interrupt Init */ |
|
|
|
HAL_NVIC_SetPriority(TIM4_IRQn, 5, 0); |
|
|
|
HAL_NVIC_EnableIRQ(TIM4_IRQn); |
|
|
|
/* USER CODE BEGIN TIM4_MspInit 1 */ |
|
|
|
|
|
|
|
/* USER CODE END TIM4_MspInit 1 */ |
|
|
|
} |
|
|
|
else if(tim_encoderHandle->Instance==TIM8) |
|
|
|
else if(tim_baseHandle->Instance==TIM6) |
|
|
|
{ |
|
|
|
/* USER CODE BEGIN TIM6_MspInit 0 */ |
|
|
|
|
|
|
|
/* USER CODE END TIM6_MspInit 0 */ |
|
|
|
/* TIM6 clock enable */ |
|
|
|
__HAL_RCC_TIM6_CLK_ENABLE(); |
|
|
|
|
|
|
|
/* TIM6 interrupt Init */ |
|
|
|
HAL_NVIC_SetPriority(TIM6_DAC_IRQn, 5, 0); |
|
|
|
HAL_NVIC_EnableIRQ(TIM6_DAC_IRQn); |
|
|
|
/* USER CODE BEGIN TIM6_MspInit 1 */ |
|
|
|
|
|
|
|
/* USER CODE END TIM6_MspInit 1 */ |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
void HAL_TIM_IC_MspInit(TIM_HandleTypeDef* tim_icHandle) |
|
|
|
{ |
|
|
|
|
|
|
|
GPIO_InitTypeDef GPIO_InitStruct = {0}; |
|
|
|
if(tim_icHandle->Instance==TIM8) |
|
|
|
{ |
|
|
|
/* USER CODE BEGIN TIM8_MspInit 0 */ |
|
|
|
|
|
|
@ -189,46 +229,57 @@ void HAL_TIM_Encoder_MspInit(TIM_HandleTypeDef* tim_encoderHandle) |
|
|
|
|
|
|
|
__HAL_RCC_GPIOC_CLK_ENABLE(); |
|
|
|
/**TIM8 GPIO Configuration |
|
|
|
PC6 ------> TIM8_CH1 |
|
|
|
PC7 ------> TIM8_CH2 |
|
|
|
PC8 ------> TIM8_CH3 |
|
|
|
*/ |
|
|
|
GPIO_InitStruct.Pin = GPIO_PIN_6|GPIO_PIN_7; |
|
|
|
GPIO_InitStruct.Pin = GPIO_PIN_7|GPIO_PIN_8; |
|
|
|
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; |
|
|
|
GPIO_InitStruct.Pull = GPIO_PULLUP; |
|
|
|
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_CC_IRQn, 5, 0); |
|
|
|
HAL_NVIC_EnableIRQ(TIM8_CC_IRQn); |
|
|
|
/* USER CODE BEGIN TIM8_MspInit 1 */ |
|
|
|
|
|
|
|
/* USER CODE END TIM8_MspInit 1 */ |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* tim_baseHandle) |
|
|
|
void HAL_TIM_MspPostInit(TIM_HandleTypeDef* timHandle) |
|
|
|
{ |
|
|
|
|
|
|
|
if(tim_baseHandle->Instance==TIM6) |
|
|
|
GPIO_InitTypeDef GPIO_InitStruct = {0}; |
|
|
|
if(timHandle->Instance==TIM8) |
|
|
|
{ |
|
|
|
/* USER CODE BEGIN TIM6_MspInit 0 */ |
|
|
|
/* USER CODE BEGIN TIM8_MspPostInit 0 */ |
|
|
|
|
|
|
|
/* USER CODE END TIM6_MspInit 0 */ |
|
|
|
/* TIM6 clock enable */ |
|
|
|
__HAL_RCC_TIM6_CLK_ENABLE(); |
|
|
|
/* USER CODE END TIM8_MspPostInit 0 */ |
|
|
|
|
|
|
|
/* TIM6 interrupt Init */ |
|
|
|
HAL_NVIC_SetPriority(TIM6_DAC_IRQn, 5, 0); |
|
|
|
HAL_NVIC_EnableIRQ(TIM6_DAC_IRQn); |
|
|
|
/* USER CODE BEGIN TIM6_MspInit 1 */ |
|
|
|
__HAL_RCC_GPIOB_CLK_ENABLE(); |
|
|
|
/**TIM8 GPIO Configuration |
|
|
|
PB0 ------> TIM8_CH2N |
|
|
|
PB1 ------> TIM8_CH3N |
|
|
|
*/ |
|
|
|
GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_1; |
|
|
|
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(GPIOB, &GPIO_InitStruct); |
|
|
|
|
|
|
|
/* USER CODE END TIM6_MspInit 1 */ |
|
|
|
/* USER CODE BEGIN TIM8_MspPostInit 1 */ |
|
|
|
|
|
|
|
/* USER CODE END TIM8_MspPostInit 1 */ |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
void HAL_TIM_Encoder_MspDeInit(TIM_HandleTypeDef* tim_encoderHandle) |
|
|
|
void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef* tim_baseHandle) |
|
|
|
{ |
|
|
|
|
|
|
|
if(tim_encoderHandle->Instance==TIM4) |
|
|
|
if(tim_baseHandle->Instance==TIM4) |
|
|
|
{ |
|
|
|
/* USER CODE BEGIN TIM4_MspDeInit 0 */ |
|
|
|
|
|
|
@ -242,46 +293,54 @@ void HAL_TIM_Encoder_MspDeInit(TIM_HandleTypeDef* tim_encoderHandle) |
|
|
|
*/ |
|
|
|
HAL_GPIO_DeInit(GPIOD, GPIO_PIN_12|GPIO_PIN_13); |
|
|
|
|
|
|
|
/* TIM4 interrupt Deinit */ |
|
|
|
HAL_NVIC_DisableIRQ(TIM4_IRQn); |
|
|
|
/* USER CODE BEGIN TIM4_MspDeInit 1 */ |
|
|
|
|
|
|
|
/* USER CODE END TIM4_MspDeInit 1 */ |
|
|
|
} |
|
|
|
else if(tim_encoderHandle->Instance==TIM8) |
|
|
|
else if(tim_baseHandle->Instance==TIM6) |
|
|
|
{ |
|
|
|
/* USER CODE BEGIN TIM8_MspDeInit 0 */ |
|
|
|
/* USER CODE BEGIN TIM6_MspDeInit 0 */ |
|
|
|
|
|
|
|
/* USER CODE END TIM8_MspDeInit 0 */ |
|
|
|
/* USER CODE END TIM6_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); |
|
|
|
__HAL_RCC_TIM6_CLK_DISABLE(); |
|
|
|
|
|
|
|
/* USER CODE BEGIN TIM8_MspDeInit 1 */ |
|
|
|
/* TIM6 interrupt Deinit */ |
|
|
|
HAL_NVIC_DisableIRQ(TIM6_DAC_IRQn); |
|
|
|
/* USER CODE BEGIN TIM6_MspDeInit 1 */ |
|
|
|
|
|
|
|
/* USER CODE END TIM8_MspDeInit 1 */ |
|
|
|
/* USER CODE END TIM6_MspDeInit 1 */ |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef* tim_baseHandle) |
|
|
|
void HAL_TIM_IC_MspDeInit(TIM_HandleTypeDef* tim_icHandle) |
|
|
|
{ |
|
|
|
|
|
|
|
if(tim_baseHandle->Instance==TIM6) |
|
|
|
if(tim_icHandle->Instance==TIM8) |
|
|
|
{ |
|
|
|
/* USER CODE BEGIN TIM6_MspDeInit 0 */ |
|
|
|
/* USER CODE BEGIN TIM8_MspDeInit 0 */ |
|
|
|
|
|
|
|
/* USER CODE END TIM6_MspDeInit 0 */ |
|
|
|
/* USER CODE END TIM8_MspDeInit 0 */ |
|
|
|
/* Peripheral clock disable */ |
|
|
|
__HAL_RCC_TIM6_CLK_DISABLE(); |
|
|
|
__HAL_RCC_TIM8_CLK_DISABLE(); |
|
|
|
|
|
|
|
/* TIM6 interrupt Deinit */ |
|
|
|
HAL_NVIC_DisableIRQ(TIM6_DAC_IRQn); |
|
|
|
/* USER CODE BEGIN TIM6_MspDeInit 1 */ |
|
|
|
/**TIM8 GPIO Configuration |
|
|
|
PB0 ------> TIM8_CH2N |
|
|
|
PB1 ------> TIM8_CH3N |
|
|
|
PC7 ------> TIM8_CH2 |
|
|
|
PC8 ------> TIM8_CH3 |
|
|
|
*/ |
|
|
|
HAL_GPIO_DeInit(GPIOB, GPIO_PIN_0|GPIO_PIN_1); |
|
|
|
|
|
|
|
/* USER CODE END TIM6_MspDeInit 1 */ |
|
|
|
HAL_GPIO_DeInit(GPIOC, GPIO_PIN_7|GPIO_PIN_8); |
|
|
|
|
|
|
|
/* TIM8 interrupt Deinit */ |
|
|
|
HAL_NVIC_DisableIRQ(TIM8_CC_IRQn); |
|
|
|
/* USER CODE BEGIN TIM8_MspDeInit 1 */ |
|
|
|
|
|
|
|
/* USER CODE END TIM8_MspDeInit 1 */ |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|