three phases working, frequency switch also, polarity not yet clear
This commit is contained in:
@ -41,18 +41,24 @@
|
|||||||
|
|
||||||
/* Private define ------------------------------------------------------------*/
|
/* Private define ------------------------------------------------------------*/
|
||||||
|
|
||||||
#define LED2_PIN_Pin GPIO_PIN_4
|
#define LED0_Pin GPIO_PIN_4
|
||||||
#define LED2_PIN_GPIO_Port GPIOE
|
#define LED0_GPIO_Port GPIOE
|
||||||
#define LED3_PIN_Pin GPIO_PIN_5
|
#define LED1_Pin GPIO_PIN_5
|
||||||
#define LED3_PIN_GPIO_Port GPIOE
|
#define LED1_GPIO_Port GPIOE
|
||||||
#define LED4_PIN_Pin GPIO_PIN_6
|
#define LED2_Pin GPIO_PIN_6
|
||||||
#define LED4_PIN_GPIO_Port GPIOE
|
#define LED2_GPIO_Port GPIOE
|
||||||
#define LED_PIN_Pin GPIO_PIN_13
|
#define LED_Pin GPIO_PIN_13
|
||||||
#define LED_PIN_GPIO_Port GPIOC
|
#define LED_GPIO_Port GPIOC
|
||||||
#define BridgePolarity_Pin GPIO_PIN_0
|
#define BridgePolarity0_Pin GPIO_PIN_0
|
||||||
#define BridgePolarity_GPIO_Port GPIOC
|
#define BridgePolarity0_GPIO_Port GPIOC
|
||||||
|
#define BridgePolarity1_Pin GPIO_PIN_1
|
||||||
|
#define BridgePolarity1_GPIO_Port GPIOC
|
||||||
|
#define BridgePolarity2_Pin GPIO_PIN_2
|
||||||
|
#define BridgePolarity2_GPIO_Port GPIOC
|
||||||
#define ERROR_PIN_Pin GPIO_PIN_10
|
#define ERROR_PIN_Pin GPIO_PIN_10
|
||||||
#define ERROR_PIN_GPIO_Port GPIOB
|
#define ERROR_PIN_GPIO_Port GPIOB
|
||||||
|
#define Sync_Pin GPIO_PIN_3
|
||||||
|
#define Sync_GPIO_Port GPIOB
|
||||||
/* USER CODE BEGIN Private defines */
|
/* USER CODE BEGIN Private defines */
|
||||||
|
|
||||||
/* USER CODE END Private defines */
|
/* USER CODE END Private defines */
|
||||||
|
@ -54,9 +54,13 @@ void SVC_Handler(void);
|
|||||||
void DebugMon_Handler(void);
|
void DebugMon_Handler(void);
|
||||||
void PendSV_Handler(void);
|
void PendSV_Handler(void);
|
||||||
void SysTick_Handler(void);
|
void SysTick_Handler(void);
|
||||||
|
void DMA1_Channel1_IRQHandler(void);
|
||||||
void DMA1_Channel5_IRQHandler(void);
|
void DMA1_Channel5_IRQHandler(void);
|
||||||
void TIM1_CC_IRQHandler(void);
|
void TIM1_UP_IRQHandler(void);
|
||||||
void TIM2_IRQHandler(void);
|
void TIM2_IRQHandler(void);
|
||||||
|
void TIM4_IRQHandler(void);
|
||||||
|
void TIM5_IRQHandler(void);
|
||||||
|
void DMA2_Channel4_5_IRQHandler(void);
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
|
@ -42,9 +42,11 @@ RTC_HandleTypeDef hrtc;
|
|||||||
|
|
||||||
TIM_HandleTypeDef htim1;
|
TIM_HandleTypeDef htim1;
|
||||||
TIM_HandleTypeDef htim2;
|
TIM_HandleTypeDef htim2;
|
||||||
TIM_HandleTypeDef htim3;
|
|
||||||
TIM_HandleTypeDef htim4;
|
TIM_HandleTypeDef htim4;
|
||||||
|
TIM_HandleTypeDef htim5;
|
||||||
DMA_HandleTypeDef hdma_tim2_ch1;
|
DMA_HandleTypeDef hdma_tim2_ch1;
|
||||||
|
DMA_HandleTypeDef hdma_tim4_ch1;
|
||||||
|
DMA_HandleTypeDef hdma_tim5_ch2;
|
||||||
|
|
||||||
/* USER CODE BEGIN PV */
|
/* USER CODE BEGIN PV */
|
||||||
/* Private variables ---------------------------------------------------------*/
|
/* Private variables ---------------------------------------------------------*/
|
||||||
@ -59,8 +61,8 @@ static void MX_DMA_Init(void);
|
|||||||
static void MX_RTC_Init(void);
|
static void MX_RTC_Init(void);
|
||||||
static void MX_TIM1_Init(void);
|
static void MX_TIM1_Init(void);
|
||||||
static void MX_TIM2_Init(void);
|
static void MX_TIM2_Init(void);
|
||||||
static void MX_TIM3_Init(void);
|
|
||||||
static void MX_TIM4_Init(void);
|
static void MX_TIM4_Init(void);
|
||||||
|
static void MX_TIM5_Init(void);
|
||||||
|
|
||||||
void HAL_TIM_MspPostInit(TIM_HandleTypeDef *htim);
|
void HAL_TIM_MspPostInit(TIM_HandleTypeDef *htim);
|
||||||
|
|
||||||
@ -95,8 +97,8 @@ int main(void)
|
|||||||
MX_RTC_Init();
|
MX_RTC_Init();
|
||||||
MX_TIM1_Init();
|
MX_TIM1_Init();
|
||||||
MX_TIM2_Init();
|
MX_TIM2_Init();
|
||||||
MX_TIM3_Init();
|
|
||||||
MX_TIM4_Init();
|
MX_TIM4_Init();
|
||||||
|
MX_TIM5_Init();
|
||||||
|
|
||||||
/* USER CODE BEGIN 2 */
|
/* USER CODE BEGIN 2 */
|
||||||
|
|
||||||
@ -206,13 +208,11 @@ static void MX_TIM1_Init(void)
|
|||||||
|
|
||||||
TIM_ClockConfigTypeDef sClockSourceConfig;
|
TIM_ClockConfigTypeDef sClockSourceConfig;
|
||||||
TIM_MasterConfigTypeDef sMasterConfig;
|
TIM_MasterConfigTypeDef sMasterConfig;
|
||||||
TIM_BreakDeadTimeConfigTypeDef sBreakDeadTimeConfig;
|
|
||||||
TIM_OC_InitTypeDef sConfigOC;
|
|
||||||
|
|
||||||
htim1.Instance = TIM1;
|
htim1.Instance = TIM1;
|
||||||
htim1.Init.Prescaler = 36;
|
htim1.Init.Prescaler = 72;
|
||||||
htim1.Init.CounterMode = TIM_COUNTERMODE_UP;
|
htim1.Init.CounterMode = TIM_COUNTERMODE_UP;
|
||||||
htim1.Init.Period = 10000;
|
htim1.Init.Period = 5000;
|
||||||
htim1.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
|
htim1.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
|
||||||
htim1.Init.RepetitionCounter = 0;
|
htim1.Init.RepetitionCounter = 0;
|
||||||
if (HAL_TIM_Base_Init(&htim1) != HAL_OK)
|
if (HAL_TIM_Base_Init(&htim1) != HAL_OK)
|
||||||
@ -226,11 +226,6 @@ static void MX_TIM1_Init(void)
|
|||||||
Error_Handler();
|
Error_Handler();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (HAL_TIM_OC_Init(&htim1) != HAL_OK)
|
|
||||||
{
|
|
||||||
Error_Handler();
|
|
||||||
}
|
|
||||||
|
|
||||||
sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
|
sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
|
||||||
sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
|
sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
|
||||||
if (HAL_TIMEx_MasterConfigSynchronization(&htim1, &sMasterConfig) != HAL_OK)
|
if (HAL_TIMEx_MasterConfigSynchronization(&htim1, &sMasterConfig) != HAL_OK)
|
||||||
@ -238,44 +233,6 @@ static void MX_TIM1_Init(void)
|
|||||||
Error_Handler();
|
Error_Handler();
|
||||||
}
|
}
|
||||||
|
|
||||||
sBreakDeadTimeConfig.OffStateRunMode = TIM_OSSR_DISABLE;
|
|
||||||
sBreakDeadTimeConfig.OffStateIDLEMode = TIM_OSSI_DISABLE;
|
|
||||||
sBreakDeadTimeConfig.LockLevel = TIM_LOCKLEVEL_OFF;
|
|
||||||
sBreakDeadTimeConfig.DeadTime = 0;
|
|
||||||
sBreakDeadTimeConfig.BreakState = TIM_BREAK_DISABLE;
|
|
||||||
sBreakDeadTimeConfig.BreakPolarity = TIM_BREAKPOLARITY_HIGH;
|
|
||||||
sBreakDeadTimeConfig.AutomaticOutput = TIM_AUTOMATICOUTPUT_DISABLE;
|
|
||||||
if (HAL_TIMEx_ConfigBreakDeadTime(&htim1, &sBreakDeadTimeConfig) != HAL_OK)
|
|
||||||
{
|
|
||||||
Error_Handler();
|
|
||||||
}
|
|
||||||
|
|
||||||
sConfigOC.OCMode = TIM_OCMODE_TOGGLE;
|
|
||||||
sConfigOC.Pulse = 1000;
|
|
||||||
sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH;
|
|
||||||
sConfigOC.OCNPolarity = TIM_OCNPOLARITY_HIGH;
|
|
||||||
sConfigOC.OCFastMode = TIM_OCFAST_DISABLE;
|
|
||||||
sConfigOC.OCIdleState = TIM_OCIDLESTATE_RESET;
|
|
||||||
sConfigOC.OCNIdleState = TIM_OCNIDLESTATE_RESET;
|
|
||||||
if (HAL_TIM_OC_ConfigChannel(&htim1, &sConfigOC, TIM_CHANNEL_1) != HAL_OK)
|
|
||||||
{
|
|
||||||
Error_Handler();
|
|
||||||
}
|
|
||||||
|
|
||||||
sConfigOC.Pulse = 2000;
|
|
||||||
if (HAL_TIM_OC_ConfigChannel(&htim1, &sConfigOC, TIM_CHANNEL_2) != HAL_OK)
|
|
||||||
{
|
|
||||||
Error_Handler();
|
|
||||||
}
|
|
||||||
|
|
||||||
sConfigOC.Pulse = 3000;
|
|
||||||
if (HAL_TIM_OC_ConfigChannel(&htim1, &sConfigOC, TIM_CHANNEL_3) != HAL_OK)
|
|
||||||
{
|
|
||||||
Error_Handler();
|
|
||||||
}
|
|
||||||
|
|
||||||
HAL_TIM_MspPostInit(&htim1);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* TIM2 init function */
|
/* TIM2 init function */
|
||||||
@ -327,55 +284,6 @@ static void MX_TIM2_Init(void)
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* TIM3 init function */
|
|
||||||
static void MX_TIM3_Init(void)
|
|
||||||
{
|
|
||||||
|
|
||||||
TIM_ClockConfigTypeDef sClockSourceConfig;
|
|
||||||
TIM_MasterConfigTypeDef sMasterConfig;
|
|
||||||
TIM_OC_InitTypeDef sConfigOC;
|
|
||||||
|
|
||||||
htim3.Instance = TIM3;
|
|
||||||
htim3.Init.Prescaler = 72;
|
|
||||||
htim3.Init.CounterMode = TIM_COUNTERMODE_UP;
|
|
||||||
htim3.Init.Period = 5000;
|
|
||||||
htim3.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
|
|
||||||
if (HAL_TIM_Base_Init(&htim3) != HAL_OK)
|
|
||||||
{
|
|
||||||
Error_Handler();
|
|
||||||
}
|
|
||||||
|
|
||||||
sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL;
|
|
||||||
if (HAL_TIM_ConfigClockSource(&htim3, &sClockSourceConfig) != HAL_OK)
|
|
||||||
{
|
|
||||||
Error_Handler();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (HAL_TIM_PWM_Init(&htim3) != HAL_OK)
|
|
||||||
{
|
|
||||||
Error_Handler();
|
|
||||||
}
|
|
||||||
|
|
||||||
sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
|
|
||||||
sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
|
|
||||||
if (HAL_TIMEx_MasterConfigSynchronization(&htim3, &sMasterConfig) != HAL_OK)
|
|
||||||
{
|
|
||||||
Error_Handler();
|
|
||||||
}
|
|
||||||
|
|
||||||
sConfigOC.OCMode = TIM_OCMODE_PWM1;
|
|
||||||
sConfigOC.Pulse = 2000;
|
|
||||||
sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH;
|
|
||||||
sConfigOC.OCFastMode = TIM_OCFAST_DISABLE;
|
|
||||||
if (HAL_TIM_PWM_ConfigChannel(&htim3, &sConfigOC, TIM_CHANNEL_1) != HAL_OK)
|
|
||||||
{
|
|
||||||
Error_Handler();
|
|
||||||
}
|
|
||||||
|
|
||||||
HAL_TIM_MspPostInit(&htim3);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
/* TIM4 init function */
|
/* TIM4 init function */
|
||||||
static void MX_TIM4_Init(void)
|
static void MX_TIM4_Init(void)
|
||||||
{
|
{
|
||||||
@ -413,7 +321,7 @@ static void MX_TIM4_Init(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
sConfigOC.OCMode = TIM_OCMODE_PWM1;
|
sConfigOC.OCMode = TIM_OCMODE_PWM1;
|
||||||
sConfigOC.Pulse = 3000;
|
sConfigOC.Pulse = 0;
|
||||||
sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH;
|
sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH;
|
||||||
sConfigOC.OCFastMode = TIM_OCFAST_DISABLE;
|
sConfigOC.OCFastMode = TIM_OCFAST_DISABLE;
|
||||||
if (HAL_TIM_PWM_ConfigChannel(&htim4, &sConfigOC, TIM_CHANNEL_1) != HAL_OK)
|
if (HAL_TIM_PWM_ConfigChannel(&htim4, &sConfigOC, TIM_CHANNEL_1) != HAL_OK)
|
||||||
@ -425,6 +333,55 @@ static void MX_TIM4_Init(void)
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* TIM5 init function */
|
||||||
|
static void MX_TIM5_Init(void)
|
||||||
|
{
|
||||||
|
|
||||||
|
TIM_ClockConfigTypeDef sClockSourceConfig;
|
||||||
|
TIM_MasterConfigTypeDef sMasterConfig;
|
||||||
|
TIM_OC_InitTypeDef sConfigOC;
|
||||||
|
|
||||||
|
htim5.Instance = TIM5;
|
||||||
|
htim5.Init.Prescaler = 72;
|
||||||
|
htim5.Init.CounterMode = TIM_COUNTERMODE_UP;
|
||||||
|
htim5.Init.Period = 5000;
|
||||||
|
htim5.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
|
||||||
|
if (HAL_TIM_Base_Init(&htim5) != HAL_OK)
|
||||||
|
{
|
||||||
|
Error_Handler();
|
||||||
|
}
|
||||||
|
|
||||||
|
sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL;
|
||||||
|
if (HAL_TIM_ConfigClockSource(&htim5, &sClockSourceConfig) != HAL_OK)
|
||||||
|
{
|
||||||
|
Error_Handler();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (HAL_TIM_PWM_Init(&htim5) != HAL_OK)
|
||||||
|
{
|
||||||
|
Error_Handler();
|
||||||
|
}
|
||||||
|
|
||||||
|
sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
|
||||||
|
sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
|
||||||
|
if (HAL_TIMEx_MasterConfigSynchronization(&htim5, &sMasterConfig) != HAL_OK)
|
||||||
|
{
|
||||||
|
Error_Handler();
|
||||||
|
}
|
||||||
|
|
||||||
|
sConfigOC.OCMode = TIM_OCMODE_PWM1;
|
||||||
|
sConfigOC.Pulse = 0;
|
||||||
|
sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH;
|
||||||
|
sConfigOC.OCFastMode = TIM_OCFAST_DISABLE;
|
||||||
|
if (HAL_TIM_PWM_ConfigChannel(&htim5, &sConfigOC, TIM_CHANNEL_2) != HAL_OK)
|
||||||
|
{
|
||||||
|
Error_Handler();
|
||||||
|
}
|
||||||
|
|
||||||
|
HAL_TIM_MspPostInit(&htim5);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Enable DMA controller clock
|
* Enable DMA controller clock
|
||||||
*/
|
*/
|
||||||
@ -432,11 +389,18 @@ static void MX_DMA_Init(void)
|
|||||||
{
|
{
|
||||||
/* DMA controller clock enable */
|
/* DMA controller clock enable */
|
||||||
__HAL_RCC_DMA1_CLK_ENABLE();
|
__HAL_RCC_DMA1_CLK_ENABLE();
|
||||||
|
__HAL_RCC_DMA2_CLK_ENABLE();
|
||||||
|
|
||||||
/* DMA interrupt init */
|
/* DMA interrupt init */
|
||||||
|
/* DMA1_Channel1_IRQn interrupt configuration */
|
||||||
|
HAL_NVIC_SetPriority(DMA1_Channel1_IRQn, 0, 0);
|
||||||
|
HAL_NVIC_EnableIRQ(DMA1_Channel1_IRQn);
|
||||||
/* DMA1_Channel5_IRQn interrupt configuration */
|
/* DMA1_Channel5_IRQn interrupt configuration */
|
||||||
HAL_NVIC_SetPriority(DMA1_Channel5_IRQn, 0, 0);
|
HAL_NVIC_SetPriority(DMA1_Channel5_IRQn, 0, 0);
|
||||||
HAL_NVIC_EnableIRQ(DMA1_Channel5_IRQn);
|
HAL_NVIC_EnableIRQ(DMA1_Channel5_IRQn);
|
||||||
|
/* DMA2_Channel4_5_IRQn interrupt configuration */
|
||||||
|
HAL_NVIC_SetPriority(DMA2_Channel4_5_IRQn, 0, 0);
|
||||||
|
HAL_NVIC_EnableIRQ(DMA2_Channel4_5_IRQn);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -460,31 +424,31 @@ static void MX_GPIO_Init(void)
|
|||||||
__HAL_RCC_GPIOD_CLK_ENABLE();
|
__HAL_RCC_GPIOD_CLK_ENABLE();
|
||||||
|
|
||||||
/*Configure GPIO pin Output Level */
|
/*Configure GPIO pin Output Level */
|
||||||
HAL_GPIO_WritePin(GPIOE, LED2_PIN_Pin|LED3_PIN_Pin|LED4_PIN_Pin, GPIO_PIN_RESET);
|
HAL_GPIO_WritePin(GPIOE, LED0_Pin|LED1_Pin|LED2_Pin, GPIO_PIN_RESET);
|
||||||
|
|
||||||
/*Configure GPIO pin Output Level */
|
/*Configure GPIO pin Output Level */
|
||||||
HAL_GPIO_WritePin(GPIOC, LED_PIN_Pin|BridgePolarity_Pin, GPIO_PIN_RESET);
|
HAL_GPIO_WritePin(GPIOC, LED_Pin|BridgePolarity0_Pin|BridgePolarity1_Pin|BridgePolarity2_Pin, GPIO_PIN_RESET);
|
||||||
|
|
||||||
/*Configure GPIO pin Output Level */
|
/*Configure GPIO pin Output Level */
|
||||||
HAL_GPIO_WritePin(ERROR_PIN_GPIO_Port, ERROR_PIN_Pin, GPIO_PIN_RESET);
|
HAL_GPIO_WritePin(GPIOB, ERROR_PIN_Pin|Sync_Pin, GPIO_PIN_RESET);
|
||||||
|
|
||||||
/*Configure GPIO pins : LED2_PIN_Pin LED3_PIN_Pin LED4_PIN_Pin */
|
/*Configure GPIO pins : LED0_Pin LED1_Pin LED2_Pin */
|
||||||
GPIO_InitStruct.Pin = LED2_PIN_Pin|LED3_PIN_Pin|LED4_PIN_Pin;
|
GPIO_InitStruct.Pin = LED0_Pin|LED1_Pin|LED2_Pin;
|
||||||
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
|
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
|
||||||
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
|
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
|
||||||
HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);
|
HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);
|
||||||
|
|
||||||
/*Configure GPIO pins : LED_PIN_Pin BridgePolarity_Pin */
|
/*Configure GPIO pins : LED_Pin BridgePolarity0_Pin BridgePolarity1_Pin BridgePolarity2_Pin */
|
||||||
GPIO_InitStruct.Pin = LED_PIN_Pin|BridgePolarity_Pin;
|
GPIO_InitStruct.Pin = LED_Pin|BridgePolarity0_Pin|BridgePolarity1_Pin|BridgePolarity2_Pin;
|
||||||
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
|
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
|
||||||
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
|
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
|
||||||
HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
|
HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
|
||||||
|
|
||||||
/*Configure GPIO pin : ERROR_PIN_Pin */
|
/*Configure GPIO pins : ERROR_PIN_Pin Sync_Pin */
|
||||||
GPIO_InitStruct.Pin = ERROR_PIN_Pin;
|
GPIO_InitStruct.Pin = ERROR_PIN_Pin|Sync_Pin;
|
||||||
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
|
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
|
||||||
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
|
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
|
||||||
HAL_GPIO_Init(ERROR_PIN_GPIO_Port, &GPIO_InitStruct);
|
HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -36,6 +36,10 @@
|
|||||||
|
|
||||||
extern DMA_HandleTypeDef hdma_tim2_ch1;
|
extern DMA_HandleTypeDef hdma_tim2_ch1;
|
||||||
|
|
||||||
|
extern DMA_HandleTypeDef hdma_tim4_ch1;
|
||||||
|
|
||||||
|
extern DMA_HandleTypeDef hdma_tim5_ch2;
|
||||||
|
|
||||||
extern void Error_Handler(void);
|
extern void Error_Handler(void);
|
||||||
/* USER CODE BEGIN 0 */
|
/* USER CODE BEGIN 0 */
|
||||||
|
|
||||||
@ -127,8 +131,8 @@ void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* htim_base)
|
|||||||
/* Peripheral clock enable */
|
/* Peripheral clock enable */
|
||||||
__HAL_RCC_TIM1_CLK_ENABLE();
|
__HAL_RCC_TIM1_CLK_ENABLE();
|
||||||
/* Peripheral interrupt init */
|
/* Peripheral interrupt init */
|
||||||
HAL_NVIC_SetPriority(TIM1_CC_IRQn, 0, 0);
|
HAL_NVIC_SetPriority(TIM1_UP_IRQn, 0, 0);
|
||||||
HAL_NVIC_EnableIRQ(TIM1_CC_IRQn);
|
HAL_NVIC_EnableIRQ(TIM1_UP_IRQn);
|
||||||
/* USER CODE BEGIN TIM1_MspInit 1 */
|
/* USER CODE BEGIN TIM1_MspInit 1 */
|
||||||
|
|
||||||
/* USER CODE END TIM1_MspInit 1 */
|
/* USER CODE END TIM1_MspInit 1 */
|
||||||
@ -165,17 +169,6 @@ void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* htim_base)
|
|||||||
|
|
||||||
/* USER CODE END TIM2_MspInit 1 */
|
/* USER CODE END TIM2_MspInit 1 */
|
||||||
}
|
}
|
||||||
else if(htim_base->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_base->Instance==TIM4)
|
else if(htim_base->Instance==TIM4)
|
||||||
{
|
{
|
||||||
/* USER CODE BEGIN TIM4_MspInit 0 */
|
/* USER CODE BEGIN TIM4_MspInit 0 */
|
||||||
@ -183,10 +176,63 @@ void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* htim_base)
|
|||||||
/* USER CODE END TIM4_MspInit 0 */
|
/* USER CODE END TIM4_MspInit 0 */
|
||||||
/* Peripheral clock enable */
|
/* Peripheral clock enable */
|
||||||
__HAL_RCC_TIM4_CLK_ENABLE();
|
__HAL_RCC_TIM4_CLK_ENABLE();
|
||||||
|
|
||||||
|
/* Peripheral DMA init*/
|
||||||
|
|
||||||
|
hdma_tim4_ch1.Instance = DMA1_Channel1;
|
||||||
|
hdma_tim4_ch1.Init.Direction = DMA_MEMORY_TO_PERIPH;
|
||||||
|
hdma_tim4_ch1.Init.PeriphInc = DMA_PINC_DISABLE;
|
||||||
|
hdma_tim4_ch1.Init.MemInc = DMA_MINC_ENABLE;
|
||||||
|
hdma_tim4_ch1.Init.PeriphDataAlignment = DMA_PDATAALIGN_HALFWORD;
|
||||||
|
hdma_tim4_ch1.Init.MemDataAlignment = DMA_MDATAALIGN_HALFWORD;
|
||||||
|
hdma_tim4_ch1.Init.Mode = DMA_CIRCULAR;
|
||||||
|
hdma_tim4_ch1.Init.Priority = DMA_PRIORITY_LOW;
|
||||||
|
if (HAL_DMA_Init(&hdma_tim4_ch1) != HAL_OK)
|
||||||
|
{
|
||||||
|
Error_Handler();
|
||||||
|
}
|
||||||
|
|
||||||
|
__HAL_LINKDMA(htim_base,hdma[TIM_DMA_ID_CC1],hdma_tim4_ch1);
|
||||||
|
|
||||||
|
/* Peripheral interrupt init */
|
||||||
|
HAL_NVIC_SetPriority(TIM4_IRQn, 0, 0);
|
||||||
|
HAL_NVIC_EnableIRQ(TIM4_IRQn);
|
||||||
/* USER CODE BEGIN TIM4_MspInit 1 */
|
/* USER CODE BEGIN TIM4_MspInit 1 */
|
||||||
|
|
||||||
/* USER CODE END TIM4_MspInit 1 */
|
/* USER CODE END TIM4_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();
|
||||||
|
|
||||||
|
/* Peripheral DMA init*/
|
||||||
|
|
||||||
|
hdma_tim5_ch2.Instance = DMA2_Channel4;
|
||||||
|
hdma_tim5_ch2.Init.Direction = DMA_MEMORY_TO_PERIPH;
|
||||||
|
hdma_tim5_ch2.Init.PeriphInc = DMA_PINC_DISABLE;
|
||||||
|
hdma_tim5_ch2.Init.MemInc = DMA_MINC_ENABLE;
|
||||||
|
hdma_tim5_ch2.Init.PeriphDataAlignment = DMA_PDATAALIGN_HALFWORD;
|
||||||
|
hdma_tim5_ch2.Init.MemDataAlignment = DMA_MDATAALIGN_HALFWORD;
|
||||||
|
hdma_tim5_ch2.Init.Mode = DMA_CIRCULAR;
|
||||||
|
hdma_tim5_ch2.Init.Priority = DMA_PRIORITY_LOW;
|
||||||
|
if (HAL_DMA_Init(&hdma_tim5_ch2) != HAL_OK)
|
||||||
|
{
|
||||||
|
Error_Handler();
|
||||||
|
}
|
||||||
|
|
||||||
|
__HAL_LINKDMA(htim_base,hdma[TIM_DMA_ID_CC2],hdma_tim5_ch2);
|
||||||
|
|
||||||
|
/* Peripheral 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 */
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -194,33 +240,11 @@ void HAL_TIM_MspPostInit(TIM_HandleTypeDef* htim)
|
|||||||
{
|
{
|
||||||
|
|
||||||
GPIO_InitTypeDef GPIO_InitStruct;
|
GPIO_InitTypeDef GPIO_InitStruct;
|
||||||
if(htim->Instance==TIM1)
|
if(htim->Instance==TIM2)
|
||||||
{
|
|
||||||
/* USER CODE BEGIN TIM1_MspPostInit 0 */
|
|
||||||
|
|
||||||
/* USER CODE END TIM1_MspPostInit 0 */
|
|
||||||
/**TIM1 GPIO Configuration
|
|
||||||
PE9 ------> TIM1_CH1
|
|
||||||
PE11 ------> TIM1_CH2
|
|
||||||
PE13 ------> TIM1_CH3
|
|
||||||
*/
|
|
||||||
GPIO_InitStruct.Pin = GPIO_PIN_9|GPIO_PIN_11|GPIO_PIN_13;
|
|
||||||
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
|
|
||||||
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
|
|
||||||
HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);
|
|
||||||
|
|
||||||
__HAL_AFIO_REMAP_TIM1_ENABLE();
|
|
||||||
|
|
||||||
/* USER CODE BEGIN TIM1_MspPostInit 1 */
|
|
||||||
|
|
||||||
/* USER CODE END TIM1_MspPostInit 1 */
|
|
||||||
}
|
|
||||||
else if(htim->Instance==TIM2)
|
|
||||||
{
|
{
|
||||||
/* USER CODE BEGIN TIM2_MspPostInit 0 */
|
/* USER CODE BEGIN TIM2_MspPostInit 0 */
|
||||||
|
|
||||||
/* USER CODE END TIM2_MspPostInit 0 */
|
/* USER CODE END TIM2_MspPostInit 0 */
|
||||||
|
|
||||||
/**TIM2 GPIO Configuration
|
/**TIM2 GPIO Configuration
|
||||||
PA0-WKUP ------> TIM2_CH1
|
PA0-WKUP ------> TIM2_CH1
|
||||||
*/
|
*/
|
||||||
@ -233,24 +257,6 @@ void HAL_TIM_MspPostInit(TIM_HandleTypeDef* htim)
|
|||||||
|
|
||||||
/* USER CODE END TIM2_MspPostInit 1 */
|
/* USER CODE END TIM2_MspPostInit 1 */
|
||||||
}
|
}
|
||||||
else if(htim->Instance==TIM3)
|
|
||||||
{
|
|
||||||
/* USER CODE BEGIN TIM3_MspPostInit 0 */
|
|
||||||
|
|
||||||
/* USER CODE END TIM3_MspPostInit 0 */
|
|
||||||
|
|
||||||
/**TIM3 GPIO Configuration
|
|
||||||
PA6 ------> TIM3_CH1
|
|
||||||
*/
|
|
||||||
GPIO_InitStruct.Pin = GPIO_PIN_6;
|
|
||||||
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
|
|
||||||
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
|
|
||||||
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
|
|
||||||
|
|
||||||
/* USER CODE BEGIN TIM3_MspPostInit 1 */
|
|
||||||
|
|
||||||
/* USER CODE END TIM3_MspPostInit 1 */
|
|
||||||
}
|
|
||||||
else if(htim->Instance==TIM4)
|
else if(htim->Instance==TIM4)
|
||||||
{
|
{
|
||||||
/* USER CODE BEGIN TIM4_MspPostInit 0 */
|
/* USER CODE BEGIN TIM4_MspPostInit 0 */
|
||||||
@ -271,6 +277,24 @@ void HAL_TIM_MspPostInit(TIM_HandleTypeDef* htim)
|
|||||||
|
|
||||||
/* USER CODE END TIM4_MspPostInit 1 */
|
/* USER CODE END TIM4_MspPostInit 1 */
|
||||||
}
|
}
|
||||||
|
else if(htim->Instance==TIM5)
|
||||||
|
{
|
||||||
|
/* USER CODE BEGIN TIM5_MspPostInit 0 */
|
||||||
|
|
||||||
|
/* USER CODE END TIM5_MspPostInit 0 */
|
||||||
|
|
||||||
|
/**TIM5 GPIO Configuration
|
||||||
|
PA1 ------> TIM5_CH2
|
||||||
|
*/
|
||||||
|
GPIO_InitStruct.Pin = GPIO_PIN_1;
|
||||||
|
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
|
||||||
|
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
|
||||||
|
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
|
||||||
|
|
||||||
|
/* USER CODE BEGIN TIM5_MspPostInit 1 */
|
||||||
|
|
||||||
|
/* USER CODE END TIM5_MspPostInit 1 */
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -286,7 +310,7 @@ void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef* htim_base)
|
|||||||
__HAL_RCC_TIM1_CLK_DISABLE();
|
__HAL_RCC_TIM1_CLK_DISABLE();
|
||||||
|
|
||||||
/* Peripheral interrupt DeInit*/
|
/* Peripheral interrupt DeInit*/
|
||||||
HAL_NVIC_DisableIRQ(TIM1_CC_IRQn);
|
HAL_NVIC_DisableIRQ(TIM1_UP_IRQn);
|
||||||
|
|
||||||
/* USER CODE BEGIN TIM1_MspDeInit 1 */
|
/* USER CODE BEGIN TIM1_MspDeInit 1 */
|
||||||
|
|
||||||
@ -310,17 +334,6 @@ void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef* htim_base)
|
|||||||
|
|
||||||
/* USER CODE END TIM2_MspDeInit 1 */
|
/* USER CODE END TIM2_MspDeInit 1 */
|
||||||
}
|
}
|
||||||
else if(htim_base->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_base->Instance==TIM4)
|
else if(htim_base->Instance==TIM4)
|
||||||
{
|
{
|
||||||
/* USER CODE BEGIN TIM4_MspDeInit 0 */
|
/* USER CODE BEGIN TIM4_MspDeInit 0 */
|
||||||
@ -328,10 +341,35 @@ void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef* htim_base)
|
|||||||
/* USER CODE END TIM4_MspDeInit 0 */
|
/* USER CODE END TIM4_MspDeInit 0 */
|
||||||
/* Peripheral clock disable */
|
/* Peripheral clock disable */
|
||||||
__HAL_RCC_TIM4_CLK_DISABLE();
|
__HAL_RCC_TIM4_CLK_DISABLE();
|
||||||
|
|
||||||
|
/* Peripheral DMA DeInit*/
|
||||||
|
HAL_DMA_DeInit(htim_base->hdma[TIM_DMA_ID_CC1]);
|
||||||
|
|
||||||
|
/* Peripheral interrupt DeInit*/
|
||||||
|
HAL_NVIC_DisableIRQ(TIM4_IRQn);
|
||||||
|
|
||||||
/* USER CODE BEGIN TIM4_MspDeInit 1 */
|
/* USER CODE BEGIN TIM4_MspDeInit 1 */
|
||||||
|
|
||||||
/* USER CODE END TIM4_MspDeInit 1 */
|
/* USER CODE END TIM4_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();
|
||||||
|
|
||||||
|
/* Peripheral DMA DeInit*/
|
||||||
|
HAL_DMA_DeInit(htim_base->hdma[TIM_DMA_ID_CC2]);
|
||||||
|
|
||||||
|
/* Peripheral interrupt DeInit*/
|
||||||
|
HAL_NVIC_DisableIRQ(TIM5_IRQn);
|
||||||
|
|
||||||
|
/* USER CODE BEGIN TIM5_MspDeInit 1 */
|
||||||
|
|
||||||
|
/* USER CODE END TIM5_MspDeInit 1 */
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -41,8 +41,12 @@
|
|||||||
|
|
||||||
/* External variables --------------------------------------------------------*/
|
/* External variables --------------------------------------------------------*/
|
||||||
extern DMA_HandleTypeDef hdma_tim2_ch1;
|
extern DMA_HandleTypeDef hdma_tim2_ch1;
|
||||||
|
extern DMA_HandleTypeDef hdma_tim4_ch1;
|
||||||
|
extern DMA_HandleTypeDef hdma_tim5_ch2;
|
||||||
extern TIM_HandleTypeDef htim1;
|
extern TIM_HandleTypeDef htim1;
|
||||||
extern TIM_HandleTypeDef htim2;
|
extern TIM_HandleTypeDef htim2;
|
||||||
|
extern TIM_HandleTypeDef htim4;
|
||||||
|
extern TIM_HandleTypeDef htim5;
|
||||||
|
|
||||||
/******************************************************************************/
|
/******************************************************************************/
|
||||||
/* Cortex-M3 Processor Interruption and Exception Handlers */
|
/* Cortex-M3 Processor Interruption and Exception Handlers */
|
||||||
@ -186,6 +190,20 @@ void SysTick_Handler(void)
|
|||||||
/* please refer to the startup file (startup_stm32f1xx.s). */
|
/* please refer to the startup file (startup_stm32f1xx.s). */
|
||||||
/******************************************************************************/
|
/******************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief This function handles DMA1 channel1 global interrupt.
|
||||||
|
*/
|
||||||
|
void DMA1_Channel1_IRQHandler(void)
|
||||||
|
{
|
||||||
|
/* USER CODE BEGIN DMA1_Channel1_IRQn 0 */
|
||||||
|
|
||||||
|
/* USER CODE END DMA1_Channel1_IRQn 0 */
|
||||||
|
HAL_DMA_IRQHandler(&hdma_tim4_ch1);
|
||||||
|
/* USER CODE BEGIN DMA1_Channel1_IRQn 1 */
|
||||||
|
|
||||||
|
/* USER CODE END DMA1_Channel1_IRQn 1 */
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief This function handles DMA1 channel5 global interrupt.
|
* @brief This function handles DMA1 channel5 global interrupt.
|
||||||
*/
|
*/
|
||||||
@ -201,17 +219,17 @@ void DMA1_Channel5_IRQHandler(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief This function handles TIM1 capture compare interrupt.
|
* @brief This function handles TIM1 update interrupt.
|
||||||
*/
|
*/
|
||||||
void TIM1_CC_IRQHandler(void)
|
void TIM1_UP_IRQHandler(void)
|
||||||
{
|
{
|
||||||
/* USER CODE BEGIN TIM1_CC_IRQn 0 */
|
/* USER CODE BEGIN TIM1_UP_IRQn 0 */
|
||||||
|
|
||||||
/* USER CODE END TIM1_CC_IRQn 0 */
|
/* USER CODE END TIM1_UP_IRQn 0 */
|
||||||
HAL_TIM_IRQHandler(&htim1);
|
HAL_TIM_IRQHandler(&htim1);
|
||||||
/* USER CODE BEGIN TIM1_CC_IRQn 1 */
|
/* USER CODE BEGIN TIM1_UP_IRQn 1 */
|
||||||
|
|
||||||
/* USER CODE END TIM1_CC_IRQn 1 */
|
/* USER CODE END TIM1_UP_IRQn 1 */
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -228,6 +246,48 @@ void TIM2_IRQHandler(void)
|
|||||||
/* USER CODE END TIM2_IRQn 1 */
|
/* USER CODE END TIM2_IRQn 1 */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief This function handles TIM4 global interrupt.
|
||||||
|
*/
|
||||||
|
void TIM4_IRQHandler(void)
|
||||||
|
{
|
||||||
|
/* USER CODE BEGIN TIM4_IRQn 0 */
|
||||||
|
|
||||||
|
/* USER CODE END TIM4_IRQn 0 */
|
||||||
|
HAL_TIM_IRQHandler(&htim4);
|
||||||
|
/* USER CODE BEGIN TIM4_IRQn 1 */
|
||||||
|
|
||||||
|
/* USER CODE END TIM4_IRQn 1 */
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief This function handles TIM5 global interrupt.
|
||||||
|
*/
|
||||||
|
void TIM5_IRQHandler(void)
|
||||||
|
{
|
||||||
|
/* USER CODE BEGIN TIM5_IRQn 0 */
|
||||||
|
|
||||||
|
/* USER CODE END TIM5_IRQn 0 */
|
||||||
|
HAL_TIM_IRQHandler(&htim5);
|
||||||
|
/* USER CODE BEGIN TIM5_IRQn 1 */
|
||||||
|
|
||||||
|
/* USER CODE END TIM5_IRQn 1 */
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief This function handles DMA2 channel4 and channel5 global interrupts.
|
||||||
|
*/
|
||||||
|
void DMA2_Channel4_5_IRQHandler(void)
|
||||||
|
{
|
||||||
|
/* USER CODE BEGIN DMA2_Channel4_5_IRQn 0 */
|
||||||
|
|
||||||
|
/* USER CODE END DMA2_Channel4_5_IRQn 0 */
|
||||||
|
HAL_DMA_IRQHandler(&hdma_tim5_ch2);
|
||||||
|
/* USER CODE BEGIN DMA2_Channel4_5_IRQn 1 */
|
||||||
|
|
||||||
|
/* USER CODE END DMA2_Channel4_5_IRQn 1 */
|
||||||
|
}
|
||||||
|
|
||||||
/* USER CODE BEGIN 1 */
|
/* USER CODE BEGIN 1 */
|
||||||
|
|
||||||
/* USER CODE END 1 */
|
/* USER CODE END 1 */
|
||||||
|
@ -1,15 +1,35 @@
|
|||||||
#MicroXplorer Configuration settings - do not modify
|
#MicroXplorer Configuration settings - do not modify
|
||||||
Dma.Request0=TIM2_CH1
|
Dma.Request0=TIM4_CH1
|
||||||
Dma.RequestsNb=1
|
Dma.Request1=TIM5_CH2
|
||||||
Dma.TIM2_CH1.0.Direction=DMA_MEMORY_TO_PERIPH
|
Dma.Request2=TIM2_CH1
|
||||||
Dma.TIM2_CH1.0.Instance=DMA1_Channel5
|
Dma.RequestsNb=3
|
||||||
Dma.TIM2_CH1.0.MemDataAlignment=DMA_MDATAALIGN_HALFWORD
|
Dma.TIM2_CH1.2.Direction=DMA_MEMORY_TO_PERIPH
|
||||||
Dma.TIM2_CH1.0.MemInc=DMA_MINC_ENABLE
|
Dma.TIM2_CH1.2.Instance=DMA1_Channel5
|
||||||
Dma.TIM2_CH1.0.Mode=DMA_CIRCULAR
|
Dma.TIM2_CH1.2.MemDataAlignment=DMA_MDATAALIGN_HALFWORD
|
||||||
Dma.TIM2_CH1.0.PeriphDataAlignment=DMA_PDATAALIGN_HALFWORD
|
Dma.TIM2_CH1.2.MemInc=DMA_MINC_ENABLE
|
||||||
Dma.TIM2_CH1.0.PeriphInc=DMA_PINC_DISABLE
|
Dma.TIM2_CH1.2.Mode=DMA_CIRCULAR
|
||||||
Dma.TIM2_CH1.0.Priority=DMA_PRIORITY_LOW
|
Dma.TIM2_CH1.2.PeriphDataAlignment=DMA_PDATAALIGN_HALFWORD
|
||||||
Dma.TIM2_CH1.0.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority
|
Dma.TIM2_CH1.2.PeriphInc=DMA_PINC_DISABLE
|
||||||
|
Dma.TIM2_CH1.2.Priority=DMA_PRIORITY_LOW
|
||||||
|
Dma.TIM2_CH1.2.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority
|
||||||
|
Dma.TIM4_CH1.0.Direction=DMA_MEMORY_TO_PERIPH
|
||||||
|
Dma.TIM4_CH1.0.Instance=DMA1_Channel1
|
||||||
|
Dma.TIM4_CH1.0.MemDataAlignment=DMA_MDATAALIGN_HALFWORD
|
||||||
|
Dma.TIM4_CH1.0.MemInc=DMA_MINC_ENABLE
|
||||||
|
Dma.TIM4_CH1.0.Mode=DMA_CIRCULAR
|
||||||
|
Dma.TIM4_CH1.0.PeriphDataAlignment=DMA_PDATAALIGN_HALFWORD
|
||||||
|
Dma.TIM4_CH1.0.PeriphInc=DMA_PINC_DISABLE
|
||||||
|
Dma.TIM4_CH1.0.Priority=DMA_PRIORITY_LOW
|
||||||
|
Dma.TIM4_CH1.0.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority
|
||||||
|
Dma.TIM5_CH2.1.Direction=DMA_MEMORY_TO_PERIPH
|
||||||
|
Dma.TIM5_CH2.1.Instance=DMA2_Channel4
|
||||||
|
Dma.TIM5_CH2.1.MemDataAlignment=DMA_MDATAALIGN_HALFWORD
|
||||||
|
Dma.TIM5_CH2.1.MemInc=DMA_MINC_ENABLE
|
||||||
|
Dma.TIM5_CH2.1.Mode=DMA_CIRCULAR
|
||||||
|
Dma.TIM5_CH2.1.PeriphDataAlignment=DMA_PDATAALIGN_HALFWORD
|
||||||
|
Dma.TIM5_CH2.1.PeriphInc=DMA_PINC_DISABLE
|
||||||
|
Dma.TIM5_CH2.1.Priority=DMA_PRIORITY_LOW
|
||||||
|
Dma.TIM5_CH2.1.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority
|
||||||
File.Version=6
|
File.Version=6
|
||||||
KeepUserPlacement=false
|
KeepUserPlacement=false
|
||||||
Mcu.Family=STM32F1
|
Mcu.Family=STM32F1
|
||||||
@ -20,40 +40,42 @@ Mcu.IP3=RTC
|
|||||||
Mcu.IP4=SYS
|
Mcu.IP4=SYS
|
||||||
Mcu.IP5=TIM1
|
Mcu.IP5=TIM1
|
||||||
Mcu.IP6=TIM2
|
Mcu.IP6=TIM2
|
||||||
Mcu.IP7=TIM3
|
Mcu.IP7=TIM4
|
||||||
Mcu.IP8=TIM4
|
Mcu.IP8=TIM5
|
||||||
Mcu.IPNb=9
|
Mcu.IPNb=9
|
||||||
Mcu.Name=STM32F103V(C-D-E)Tx
|
Mcu.Name=STM32F103V(C-D-E)Tx
|
||||||
Mcu.Package=LQFP100
|
Mcu.Package=LQFP100
|
||||||
Mcu.Pin0=PE4
|
Mcu.Pin0=PE4
|
||||||
Mcu.Pin1=PE5
|
Mcu.Pin1=PE5
|
||||||
Mcu.Pin10=PE11
|
Mcu.Pin10=PA1
|
||||||
Mcu.Pin11=PE13
|
Mcu.Pin11=PB10
|
||||||
Mcu.Pin12=PB10
|
Mcu.Pin12=PD12
|
||||||
Mcu.Pin13=PD12
|
Mcu.Pin13=PA13
|
||||||
Mcu.Pin14=PA13
|
Mcu.Pin14=PA14
|
||||||
Mcu.Pin15=PA14
|
Mcu.Pin15=PB3
|
||||||
Mcu.Pin16=VP_RTC_No_RTC_Output
|
Mcu.Pin16=VP_RTC_No_RTC_Output
|
||||||
Mcu.Pin17=VP_SYS_VS_Systick
|
Mcu.Pin17=VP_SYS_VS_Systick
|
||||||
Mcu.Pin18=VP_TIM1_VS_ClockSourceINT
|
Mcu.Pin18=VP_TIM1_VS_ClockSourceINT
|
||||||
Mcu.Pin19=VP_TIM2_VS_ClockSourceINT
|
Mcu.Pin19=VP_TIM2_VS_ClockSourceINT
|
||||||
Mcu.Pin2=PE6
|
Mcu.Pin2=PE6
|
||||||
Mcu.Pin20=VP_TIM3_VS_ClockSourceINT
|
Mcu.Pin20=VP_TIM4_VS_ClockSourceINT
|
||||||
Mcu.Pin21=VP_TIM4_VS_ClockSourceINT
|
Mcu.Pin21=VP_TIM5_VS_ClockSourceINT
|
||||||
Mcu.Pin3=PC13-TAMPER-RTC
|
Mcu.Pin3=PC13-TAMPER-RTC
|
||||||
Mcu.Pin4=OSC_IN
|
Mcu.Pin4=OSC_IN
|
||||||
Mcu.Pin5=OSC_OUT
|
Mcu.Pin5=OSC_OUT
|
||||||
Mcu.Pin6=PC0
|
Mcu.Pin6=PC0
|
||||||
Mcu.Pin7=PA0-WKUP
|
Mcu.Pin7=PC1
|
||||||
Mcu.Pin8=PA6
|
Mcu.Pin8=PC2
|
||||||
Mcu.Pin9=PE9
|
Mcu.Pin9=PA0-WKUP
|
||||||
Mcu.PinsNb=22
|
Mcu.PinsNb=22
|
||||||
Mcu.UserConstants=
|
Mcu.UserConstants=
|
||||||
Mcu.UserName=STM32F103VCTx
|
Mcu.UserName=STM32F103VCTx
|
||||||
MxCube.Version=4.16.1
|
MxCube.Version=4.16.1
|
||||||
MxDb.Version=DB.4.0.161
|
MxDb.Version=DB.4.0.161
|
||||||
NVIC.BusFault_IRQn=true\:0\:0\:false\:false\:true
|
NVIC.BusFault_IRQn=true\:0\:0\:false\:false\:true
|
||||||
|
NVIC.DMA1_Channel1_IRQn=true\:0\:0\:false\:false\:true
|
||||||
NVIC.DMA1_Channel5_IRQn=true\:0\:0\:false\:false\:true
|
NVIC.DMA1_Channel5_IRQn=true\:0\:0\:false\:false\:true
|
||||||
|
NVIC.DMA2_Channel4_5_IRQn=true\:0\:0\:false\:false\:true
|
||||||
NVIC.DebugMonitor_IRQn=true\:0\:0\:false\:false\:true
|
NVIC.DebugMonitor_IRQn=true\:0\:0\:false\:false\:true
|
||||||
NVIC.HardFault_IRQn=true\:0\:0\:false\:false\:true
|
NVIC.HardFault_IRQn=true\:0\:0\:false\:false\:true
|
||||||
NVIC.MemoryManagement_IRQn=true\:0\:0\:false\:false\:true
|
NVIC.MemoryManagement_IRQn=true\:0\:0\:false\:false\:true
|
||||||
@ -62,8 +84,10 @@ NVIC.PendSV_IRQn=true\:0\:0\:false\:false\:true
|
|||||||
NVIC.PriorityGroup=NVIC_PRIORITYGROUP_4
|
NVIC.PriorityGroup=NVIC_PRIORITYGROUP_4
|
||||||
NVIC.SVCall_IRQn=true\:0\:0\:false\:false\:true
|
NVIC.SVCall_IRQn=true\:0\:0\:false\:false\:true
|
||||||
NVIC.SysTick_IRQn=true\:0\:0\:false\:false\:true
|
NVIC.SysTick_IRQn=true\:0\:0\:false\:false\:true
|
||||||
NVIC.TIM1_CC_IRQn=true\:0\:0\:false\:false\:true
|
NVIC.TIM1_UP_IRQn=true\:0\:0\:false\:false\:true
|
||||||
NVIC.TIM2_IRQn=true\:0\:0\:false\:false\:true
|
NVIC.TIM2_IRQn=true\:0\:0\:false\:false\:true
|
||||||
|
NVIC.TIM4_IRQn=true\:0\:0\:false\:false\:true
|
||||||
|
NVIC.TIM5_IRQn=true\:0\:0\:false\:false\:true
|
||||||
NVIC.UsageFault_IRQn=true\:0\:0\:false\:false\:true
|
NVIC.UsageFault_IRQn=true\:0\:0\:false\:false\:true
|
||||||
OSC_IN.Mode=HSE-External-Oscillator
|
OSC_IN.Mode=HSE-External-Oscillator
|
||||||
OSC_IN.Signal=RCC_OSC_IN
|
OSC_IN.Signal=RCC_OSC_IN
|
||||||
@ -71,23 +95,35 @@ OSC_OUT.Mode=HSE-External-Oscillator
|
|||||||
OSC_OUT.Signal=RCC_OSC_OUT
|
OSC_OUT.Signal=RCC_OSC_OUT
|
||||||
PA0-WKUP.Locked=true
|
PA0-WKUP.Locked=true
|
||||||
PA0-WKUP.Signal=S_TIM2_CH1_ETR
|
PA0-WKUP.Signal=S_TIM2_CH1_ETR
|
||||||
|
PA1.Signal=S_TIM5_CH2
|
||||||
PA13.Mode=Serial_Wire
|
PA13.Mode=Serial_Wire
|
||||||
PA13.Signal=SYS_JTMS-SWDIO
|
PA13.Signal=SYS_JTMS-SWDIO
|
||||||
PA14.Mode=Serial_Wire
|
PA14.Mode=Serial_Wire
|
||||||
PA14.Signal=SYS_JTCK-SWCLK
|
PA14.Signal=SYS_JTCK-SWCLK
|
||||||
PA6.Signal=S_TIM3_CH1
|
|
||||||
PB10.GPIOParameters=GPIO_Label
|
PB10.GPIOParameters=GPIO_Label
|
||||||
PB10.GPIO_Label=ERROR_PIN
|
PB10.GPIO_Label=ERROR_PIN
|
||||||
PB10.Locked=true
|
PB10.Locked=true
|
||||||
PB10.Signal=GPIO_Output
|
PB10.Signal=GPIO_Output
|
||||||
|
PB3.GPIOParameters=GPIO_Label
|
||||||
|
PB3.GPIO_Label=Sync
|
||||||
|
PB3.Locked=true
|
||||||
|
PB3.Signal=GPIO_Output
|
||||||
PC0.GPIOParameters=GPIO_Label
|
PC0.GPIOParameters=GPIO_Label
|
||||||
PC0.GPIO_Label=BridgePolarity
|
PC0.GPIO_Label=BridgePolarity0
|
||||||
PC0.Locked=true
|
PC0.Locked=true
|
||||||
PC0.Signal=GPIO_Output
|
PC0.Signal=GPIO_Output
|
||||||
|
PC1.GPIOParameters=GPIO_Label
|
||||||
|
PC1.GPIO_Label=BridgePolarity1
|
||||||
|
PC1.Locked=true
|
||||||
|
PC1.Signal=GPIO_Output
|
||||||
PC13-TAMPER-RTC.GPIOParameters=GPIO_Label
|
PC13-TAMPER-RTC.GPIOParameters=GPIO_Label
|
||||||
PC13-TAMPER-RTC.GPIO_Label=LED_PIN
|
PC13-TAMPER-RTC.GPIO_Label=LED
|
||||||
PC13-TAMPER-RTC.Locked=true
|
PC13-TAMPER-RTC.Locked=true
|
||||||
PC13-TAMPER-RTC.Signal=GPIO_Output
|
PC13-TAMPER-RTC.Signal=GPIO_Output
|
||||||
|
PC2.GPIOParameters=GPIO_Label
|
||||||
|
PC2.GPIO_Label=BridgePolarity2
|
||||||
|
PC2.Locked=true
|
||||||
|
PC2.Signal=GPIO_Output
|
||||||
PCC.Checker=false
|
PCC.Checker=false
|
||||||
PCC.Line=STM32F103
|
PCC.Line=STM32F103
|
||||||
PCC.MCU=STM32F103V(C-D-E)Tx
|
PCC.MCU=STM32F103V(C-D-E)Tx
|
||||||
@ -98,21 +134,18 @@ PCC.Series=STM32F1
|
|||||||
PCC.Temperature=25
|
PCC.Temperature=25
|
||||||
PCC.Vdd=3.3
|
PCC.Vdd=3.3
|
||||||
PD12.Signal=S_TIM4_CH1
|
PD12.Signal=S_TIM4_CH1
|
||||||
PE11.Signal=S_TIM1_CH2
|
|
||||||
PE13.Signal=S_TIM1_CH3
|
|
||||||
PE4.GPIOParameters=GPIO_Label
|
PE4.GPIOParameters=GPIO_Label
|
||||||
PE4.GPIO_Label=LED2_PIN
|
PE4.GPIO_Label=LED0
|
||||||
PE4.Locked=true
|
PE4.Locked=true
|
||||||
PE4.Signal=GPIO_Output
|
PE4.Signal=GPIO_Output
|
||||||
PE5.GPIOParameters=GPIO_Label
|
PE5.GPIOParameters=GPIO_Label
|
||||||
PE5.GPIO_Label=LED3_PIN
|
PE5.GPIO_Label=LED1
|
||||||
PE5.Locked=true
|
PE5.Locked=true
|
||||||
PE5.Signal=GPIO_Output
|
PE5.Signal=GPIO_Output
|
||||||
PE6.GPIOParameters=GPIO_Label
|
PE6.GPIOParameters=GPIO_Label
|
||||||
PE6.GPIO_Label=LED4_PIN
|
PE6.GPIO_Label=LED2
|
||||||
PE6.Locked=true
|
PE6.Locked=true
|
||||||
PE6.Signal=GPIO_Output
|
PE6.Signal=GPIO_Output
|
||||||
PE9.Signal=S_TIM1_CH1
|
|
||||||
ProjectManager.AskForMigrate=true
|
ProjectManager.AskForMigrate=true
|
||||||
ProjectManager.BackupPrevious=false
|
ProjectManager.BackupPrevious=false
|
||||||
ProjectManager.CompilerOptimize=2
|
ProjectManager.CompilerOptimize=2
|
||||||
@ -135,7 +168,7 @@ ProjectManager.StackSize=0x400
|
|||||||
ProjectManager.TargetToolchain=SW4STM32
|
ProjectManager.TargetToolchain=SW4STM32
|
||||||
ProjectManager.ToolChainLocation=/home/wn/workspace-stm32/inverter2/cubemx/output/inverter2
|
ProjectManager.ToolChainLocation=/home/wn/workspace-stm32/inverter2/cubemx/output/inverter2
|
||||||
ProjectManager.UnderRoot=true
|
ProjectManager.UnderRoot=true
|
||||||
ProjectManager.functionlistsort=1-MX_GPIO_Init-GPIO-false,2-MX_DMA_Init-DMA-false,3-MX_RTC_Init-RTC-false,4-MX_TIM1_Init-TIM1-false,5-MX_TIM2_Init-TIM2-false,6-MX_TIM3_Init-TIM3-false,7-MX_TIM4_Init-TIM4-false
|
ProjectManager.functionlistsort=1-MX_GPIO_Init-GPIO-false,2-MX_DMA_Init-DMA-false,3-MX_RTC_Init-RTC-false,4-MX_TIM1_Init-TIM1-false,5-MX_TIM2_Init-TIM2-false,6-MX_TIM4_Init-TIM4-false,7-MX_TIM5_Init-TIM5-false
|
||||||
RCC.ADCFreqValue=36000000
|
RCC.ADCFreqValue=36000000
|
||||||
RCC.AHBFreq_Value=72000000
|
RCC.AHBFreq_Value=72000000
|
||||||
RCC.APB1CLKDivider=RCC_HCLK_DIV2
|
RCC.APB1CLKDivider=RCC_HCLK_DIV2
|
||||||
@ -165,43 +198,28 @@ RCC.USBFreq_Value=72000000
|
|||||||
RCC.VCOOutput2Freq_Value=8000000
|
RCC.VCOOutput2Freq_Value=8000000
|
||||||
RTC.Format=RTC_FORMAT_BIN
|
RTC.Format=RTC_FORMAT_BIN
|
||||||
RTC.IPParameters=Format
|
RTC.IPParameters=Format
|
||||||
SH.S_TIM1_CH1.0=TIM1_CH1,Output Compare1 CH1
|
|
||||||
SH.S_TIM1_CH1.ConfNb=1
|
|
||||||
SH.S_TIM1_CH2.0=TIM1_CH2,Output Compare2 CH2
|
|
||||||
SH.S_TIM1_CH2.ConfNb=1
|
|
||||||
SH.S_TIM1_CH3.0=TIM1_CH3,Output Compare3 CH3
|
|
||||||
SH.S_TIM1_CH3.ConfNb=1
|
|
||||||
SH.S_TIM2_CH1_ETR.0=TIM2_CH1,PWM Generation1 CH1
|
SH.S_TIM2_CH1_ETR.0=TIM2_CH1,PWM Generation1 CH1
|
||||||
SH.S_TIM2_CH1_ETR.ConfNb=1
|
SH.S_TIM2_CH1_ETR.ConfNb=1
|
||||||
SH.S_TIM3_CH1.0=TIM3_CH1,PWM Generation1 CH1
|
|
||||||
SH.S_TIM3_CH1.ConfNb=1
|
|
||||||
SH.S_TIM4_CH1.0=TIM4_CH1,PWM Generation1 CH1
|
SH.S_TIM4_CH1.0=TIM4_CH1,PWM Generation1 CH1
|
||||||
SH.S_TIM4_CH1.ConfNb=1
|
SH.S_TIM4_CH1.ConfNb=1
|
||||||
TIM1.Channel-Output\ Compare2\ CH2=TIM_CHANNEL_2
|
SH.S_TIM5_CH2.0=TIM5_CH2,PWM Generation2 CH2
|
||||||
TIM1.Channel-Output\ Compare3\ CH3=TIM_CHANNEL_3
|
SH.S_TIM5_CH2.ConfNb=1
|
||||||
TIM1.IPParameters=TIM_MasterOutputTrigger,TIM_MasterSlaveMode,Channel-Output Compare2 CH2,Channel-Output Compare3 CH3,Prescaler,Period,OCMode_1,Pulse-Output Compare1 CH1,OCMode_2,Pulse-Output Compare2 CH2,OCMode_3,Pulse-Output Compare3 CH3
|
TIM1.IPParameters=TIM_MasterOutputTrigger,TIM_MasterSlaveMode,Prescaler,Period
|
||||||
TIM1.OCMode_1=TIM_OCMODE_TOGGLE
|
TIM1.Period=5000
|
||||||
TIM1.OCMode_2=TIM_OCMODE_TOGGLE
|
TIM1.Prescaler=72
|
||||||
TIM1.OCMode_3=TIM_OCMODE_TOGGLE
|
|
||||||
TIM1.Period=10000
|
|
||||||
TIM1.Prescaler=36
|
|
||||||
TIM1.Pulse-Output\ Compare1\ CH1=1000
|
|
||||||
TIM1.Pulse-Output\ Compare2\ CH2=2000
|
|
||||||
TIM1.Pulse-Output\ Compare3\ CH3=3000
|
|
||||||
TIM1.TIM_MasterOutputTrigger=TIM_TRGO_RESET
|
TIM1.TIM_MasterOutputTrigger=TIM_TRGO_RESET
|
||||||
TIM1.TIM_MasterSlaveMode=TIM_MASTERSLAVEMODE_DISABLE
|
TIM1.TIM_MasterSlaveMode=TIM_MASTERSLAVEMODE_DISABLE
|
||||||
TIM2.IPParameters=Prescaler,Period,Pulse-PWM Generation1 CH1
|
TIM2.IPParameters=Prescaler,Period,Pulse-PWM Generation1 CH1
|
||||||
TIM2.Period=5000
|
TIM2.Period=5000
|
||||||
TIM2.Prescaler=72
|
TIM2.Prescaler=72
|
||||||
TIM2.Pulse-PWM\ Generation1\ CH1=1000
|
TIM2.Pulse-PWM\ Generation1\ CH1=1000
|
||||||
TIM3.IPParameters=Prescaler,Period,Pulse-PWM Generation1 CH1
|
TIM4.IPParameters=Prescaler,Period
|
||||||
TIM3.Period=5000
|
|
||||||
TIM3.Prescaler=72
|
|
||||||
TIM3.Pulse-PWM\ Generation1\ CH1=2000
|
|
||||||
TIM4.IPParameters=Prescaler,Period,Pulse-PWM Generation1 CH1
|
|
||||||
TIM4.Period=5000
|
TIM4.Period=5000
|
||||||
TIM4.Prescaler=72
|
TIM4.Prescaler=72
|
||||||
TIM4.Pulse-PWM\ Generation1\ CH1=3000
|
TIM5.Channel-PWM\ Generation2\ CH2=TIM_CHANNEL_2
|
||||||
|
TIM5.IPParameters=Channel-PWM Generation2 CH2,Prescaler,Period
|
||||||
|
TIM5.Period=5000
|
||||||
|
TIM5.Prescaler=72
|
||||||
VP_RTC_No_RTC_Output.Mode=RTC_OUT_NO
|
VP_RTC_No_RTC_Output.Mode=RTC_OUT_NO
|
||||||
VP_RTC_No_RTC_Output.Signal=RTC_No_RTC_Output
|
VP_RTC_No_RTC_Output.Signal=RTC_No_RTC_Output
|
||||||
VP_SYS_VS_Systick.Mode=SysTick
|
VP_SYS_VS_Systick.Mode=SysTick
|
||||||
@ -210,8 +228,8 @@ VP_TIM1_VS_ClockSourceINT.Mode=Internal
|
|||||||
VP_TIM1_VS_ClockSourceINT.Signal=TIM1_VS_ClockSourceINT
|
VP_TIM1_VS_ClockSourceINT.Signal=TIM1_VS_ClockSourceINT
|
||||||
VP_TIM2_VS_ClockSourceINT.Mode=Internal
|
VP_TIM2_VS_ClockSourceINT.Mode=Internal
|
||||||
VP_TIM2_VS_ClockSourceINT.Signal=TIM2_VS_ClockSourceINT
|
VP_TIM2_VS_ClockSourceINT.Signal=TIM2_VS_ClockSourceINT
|
||||||
VP_TIM3_VS_ClockSourceINT.Mode=Internal
|
|
||||||
VP_TIM3_VS_ClockSourceINT.Signal=TIM3_VS_ClockSourceINT
|
|
||||||
VP_TIM4_VS_ClockSourceINT.Mode=Internal
|
VP_TIM4_VS_ClockSourceINT.Mode=Internal
|
||||||
VP_TIM4_VS_ClockSourceINT.Signal=TIM4_VS_ClockSourceINT
|
VP_TIM4_VS_ClockSourceINT.Signal=TIM4_VS_ClockSourceINT
|
||||||
|
VP_TIM5_VS_ClockSourceINT.Mode=Internal
|
||||||
|
VP_TIM5_VS_ClockSourceINT.Signal=TIM5_VS_ClockSourceINT
|
||||||
board=inverter2
|
board=inverter2
|
||||||
|
@ -41,18 +41,24 @@
|
|||||||
|
|
||||||
/* Private define ------------------------------------------------------------*/
|
/* Private define ------------------------------------------------------------*/
|
||||||
|
|
||||||
#define LED2_PIN_Pin GPIO_PIN_4
|
#define LED0_Pin GPIO_PIN_4
|
||||||
#define LED2_PIN_GPIO_Port GPIOE
|
#define LED0_GPIO_Port GPIOE
|
||||||
#define LED3_PIN_Pin GPIO_PIN_5
|
#define LED1_Pin GPIO_PIN_5
|
||||||
#define LED3_PIN_GPIO_Port GPIOE
|
#define LED1_GPIO_Port GPIOE
|
||||||
#define LED4_PIN_Pin GPIO_PIN_6
|
#define LED2_Pin GPIO_PIN_6
|
||||||
#define LED4_PIN_GPIO_Port GPIOE
|
#define LED2_GPIO_Port GPIOE
|
||||||
#define LED_PIN_Pin GPIO_PIN_13
|
#define LED_Pin GPIO_PIN_13
|
||||||
#define LED_PIN_GPIO_Port GPIOC
|
#define LED_GPIO_Port GPIOC
|
||||||
#define BridgePolarity_Pin GPIO_PIN_0
|
#define BridgePolarity0_Pin GPIO_PIN_0
|
||||||
#define BridgePolarity_GPIO_Port GPIOC
|
#define BridgePolarity0_GPIO_Port GPIOC
|
||||||
|
#define BridgePolarity1_Pin GPIO_PIN_1
|
||||||
|
#define BridgePolarity1_GPIO_Port GPIOC
|
||||||
|
#define BridgePolarity2_Pin GPIO_PIN_2
|
||||||
|
#define BridgePolarity2_GPIO_Port GPIOC
|
||||||
#define ERROR_PIN_Pin GPIO_PIN_10
|
#define ERROR_PIN_Pin GPIO_PIN_10
|
||||||
#define ERROR_PIN_GPIO_Port GPIOB
|
#define ERROR_PIN_GPIO_Port GPIOB
|
||||||
|
#define Sync_Pin GPIO_PIN_3
|
||||||
|
#define Sync_GPIO_Port GPIOB
|
||||||
/* USER CODE BEGIN Private defines */
|
/* USER CODE BEGIN Private defines */
|
||||||
|
|
||||||
/* USER CODE END Private defines */
|
/* USER CODE END Private defines */
|
||||||
|
@ -54,9 +54,13 @@ void SVC_Handler(void);
|
|||||||
void DebugMon_Handler(void);
|
void DebugMon_Handler(void);
|
||||||
void PendSV_Handler(void);
|
void PendSV_Handler(void);
|
||||||
void SysTick_Handler(void);
|
void SysTick_Handler(void);
|
||||||
|
void DMA1_Channel1_IRQHandler(void);
|
||||||
void DMA1_Channel5_IRQHandler(void);
|
void DMA1_Channel5_IRQHandler(void);
|
||||||
void TIM1_CC_IRQHandler(void);
|
void TIM1_UP_IRQHandler(void);
|
||||||
void TIM2_IRQHandler(void);
|
void TIM2_IRQHandler(void);
|
||||||
|
void TIM4_IRQHandler(void);
|
||||||
|
void TIM5_IRQHandler(void);
|
||||||
|
void DMA2_Channel4_5_IRQHandler(void);
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
|
@ -15,28 +15,31 @@
|
|||||||
|
|
||||||
extern TIM_HandleTypeDef htim1;
|
extern TIM_HandleTypeDef htim1;
|
||||||
extern TIM_HandleTypeDef htim2;
|
extern TIM_HandleTypeDef htim2;
|
||||||
extern TIM_HandleTypeDef htim3;
|
|
||||||
extern TIM_HandleTypeDef htim4;
|
extern TIM_HandleTypeDef htim4;
|
||||||
|
extern TIM_HandleTypeDef htim5;
|
||||||
|
|
||||||
|
|
||||||
#define NUM_OF_SINE_SLOT 30
|
#define NUM_OF_SINE_SLOT 30
|
||||||
uint16_t freqOut = 100;
|
uint16_t freqOut = 100;
|
||||||
const uint32_t FREQ_IN = 72E6;
|
const uint32_t FREQ_IN = 1E6;
|
||||||
const float PI = 3.14159;
|
const float PI = 3.14159;
|
||||||
float slotAngle = 180.0 / NUM_OF_SINE_SLOT;
|
float slotAngle = 180.0 / NUM_OF_SINE_SLOT;
|
||||||
float sineValues[NUM_OF_SINE_SLOT];
|
float sineValues[NUM_OF_SINE_SLOT];
|
||||||
uint16_t IV[NUM_OF_SINE_SLOT];
|
uint16_t IV[NUM_OF_SINE_SLOT];
|
||||||
|
volatile uint32_t timer1Cnt;
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
uint8_t slotCnt;
|
uint8_t slotCnt;
|
||||||
bool running;
|
bool running;
|
||||||
GPIO_TypeDef *bridgePolarityPort;
|
GPIO_TypeDef *bridgePolarityPort;
|
||||||
uint16_t bridgePolarityPin;
|
uint16_t bridgePolarityPin;
|
||||||
|
IRQn_Type irqType;
|
||||||
TIM_HandleTypeDef *handle;
|
TIM_HandleTypeDef *handle;
|
||||||
|
uint32_t channel;
|
||||||
} timerSupport_t;
|
} timerSupport_t;
|
||||||
|
|
||||||
#define NUM_OF_TIMER 3
|
#define NUM_OF_TIMER 3
|
||||||
timerSupport_t timerSupport[NUM_OF_TIMER];
|
volatile timerSupport_t timerSupport[NUM_OF_TIMER];
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -46,29 +49,27 @@ void inverterBegin() {
|
|||||||
sineValues[i] = sinf(angle / 180 * PI);
|
sineValues[i] = sinf(angle / 180 * PI);
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO Configure pins for all three bridges
|
|
||||||
timerSupport[0].handle = &htim2;
|
timerSupport[0].handle = &htim2;
|
||||||
timerSupport[0].running = false;
|
timerSupport[0].running = false;
|
||||||
timerSupport[0].slotCnt = 0;
|
timerSupport[0].slotCnt = 0;
|
||||||
timerSupport[1].handle = &htim3;
|
timerSupport[0].bridgePolarityPort = BridgePolarity0_GPIO_Port;
|
||||||
|
timerSupport[0].bridgePolarityPin = BridgePolarity0_Pin;
|
||||||
|
timerSupport[0].irqType = TIM2_IRQn;
|
||||||
|
timerSupport[0].channel = TIM_CHANNEL_1;
|
||||||
|
timerSupport[1].handle = &htim5;
|
||||||
timerSupport[1].running = false;
|
timerSupport[1].running = false;
|
||||||
timerSupport[1].slotCnt = 0;
|
timerSupport[1].slotCnt = 0;
|
||||||
|
timerSupport[1].bridgePolarityPort = BridgePolarity1_GPIO_Port;
|
||||||
|
timerSupport[1].bridgePolarityPin = BridgePolarity1_Pin;
|
||||||
|
timerSupport[1].irqType = TIM5_IRQn;
|
||||||
|
timerSupport[1].channel = TIM_CHANNEL_2;
|
||||||
timerSupport[2].handle = &htim4;
|
timerSupport[2].handle = &htim4;
|
||||||
timerSupport[2].running = false;
|
timerSupport[2].running = false;
|
||||||
timerSupport[2].slotCnt = 0;
|
timerSupport[2].slotCnt = 0;
|
||||||
|
timerSupport[2].bridgePolarityPort = BridgePolarity2_GPIO_Port;
|
||||||
__HAL_TIM_ENABLE_IT(&htim2, TIM_IT_UPDATE);
|
timerSupport[2].bridgePolarityPin = BridgePolarity2_Pin;
|
||||||
HAL_NVIC_SetPriority(TIM2_IRQn, 0, 0);
|
timerSupport[2].irqType = TIM4_IRQn;
|
||||||
HAL_NVIC_EnableIRQ(TIM2_IRQn);
|
timerSupport[2].channel = TIM_CHANNEL_1;
|
||||||
__HAL_TIM_ENABLE_IT(&htim3, TIM_IT_UPDATE);
|
|
||||||
HAL_NVIC_SetPriority(TIM3_IRQn, 0, 0);
|
|
||||||
HAL_NVIC_EnableIRQ(TIM3_IRQn);
|
|
||||||
__HAL_TIM_ENABLE_IT(&htim4, TIM_IT_UPDATE);
|
|
||||||
HAL_NVIC_SetPriority(TIM4_IRQn, 0, 0);
|
|
||||||
HAL_NVIC_EnableIRQ(TIM4_IRQn);
|
|
||||||
|
|
||||||
HAL_NVIC_SetPriority(TIM1_CC_IRQn, 0, 0);
|
|
||||||
HAL_NVIC_EnableIRQ(TIM1_CC_IRQn);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void inverterSetFrequency(uint8_t freqOut) {
|
void inverterSetFrequency(uint8_t freqOut) {
|
||||||
@ -77,12 +78,13 @@ void inverterSetFrequency(uint8_t freqOut) {
|
|||||||
IV[i] = (uint16_t)(sineValues[i] * 0.9 * slotWidth);
|
IV[i] = (uint16_t)(sineValues[i] * 0.9 * slotWidth);
|
||||||
}
|
}
|
||||||
|
|
||||||
HAL_TIM_OC_Stop_IT(&htim1, TIM_CHANNEL_1);
|
HAL_TIM_Base_Stop(&htim1);
|
||||||
HAL_TIM_OC_Stop_IT(&htim1, TIM_CHANNEL_2);
|
__HAL_TIM_DISABLE_IT(&htim1, TIM_IT_UPDATE);
|
||||||
HAL_TIM_OC_Stop_IT(&htim1, TIM_CHANNEL_3);
|
|
||||||
|
|
||||||
for (uint8_t i = 0; i < NUM_OF_TIMER; i++){
|
for (uint8_t i = 0; i < NUM_OF_TIMER; i++){
|
||||||
HAL_TIM_PWM_Stop_DMA(timerSupport[i].handle, TIM_CHANNEL_1);
|
HAL_TIM_PWM_Stop_DMA(timerSupport[i].handle, timerSupport[i].channel);
|
||||||
|
__HAL_TIM_DISABLE_IT(timerSupport[i].handle, TIM_IT_UPDATE);
|
||||||
|
|
||||||
timerSupport[i].slotCnt = 0;
|
timerSupport[i].slotCnt = 0;
|
||||||
timerSupport[i].running = false;
|
timerSupport[i].running = false;
|
||||||
@ -90,10 +92,14 @@ void inverterSetFrequency(uint8_t freqOut) {
|
|||||||
__HAL_TIM_SET_AUTORELOAD(timerSupport[i].handle, slotWidth);
|
__HAL_TIM_SET_AUTORELOAD(timerSupport[i].handle, slotWidth);
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO Set the 120<32> values for the channels
|
HAL_GPIO_WritePin(LED0_GPIO_Port, LED0_Pin, GPIO_PIN_RESET);
|
||||||
HAL_TIM_OC_Start_IT(&htim1, TIM_CHANNEL_1);
|
HAL_GPIO_WritePin(LED1_GPIO_Port, LED1_Pin, GPIO_PIN_RESET);
|
||||||
HAL_TIM_OC_Start_IT(&htim1, TIM_CHANNEL_2);
|
HAL_GPIO_WritePin(LED2_GPIO_Port, LED2_Pin, GPIO_PIN_RESET);
|
||||||
HAL_TIM_OC_Start_IT(&htim1, TIM_CHANNEL_3);
|
|
||||||
|
timer1Cnt = 0;
|
||||||
|
__HAL_TIM_SET_AUTORELOAD(&htim1, slotWidth);
|
||||||
|
HAL_TIM_Base_Start_IT(&htim1);
|
||||||
|
__HAL_TIM_ENABLE_IT(&htim1, TIM_IT_UPDATE);
|
||||||
}
|
}
|
||||||
|
|
||||||
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim) {
|
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim) {
|
||||||
@ -106,28 +112,32 @@ void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
if (htim == &htim1) {
|
||||||
|
HAL_GPIO_TogglePin(Sync_GPIO_Port, Sync_Pin);
|
||||||
void HAL_TIM_OC_DelayElapsedCallback(TIM_HandleTypeDef * htim) {
|
if (timer1Cnt == 0) {
|
||||||
if (htim->Instance == TIM1) {
|
|
||||||
if (htim->Channel == HAL_TIM_ACTIVE_CHANNEL_1) {
|
|
||||||
HAL_GPIO_TogglePin(LED2_PIN_GPIO_Port, LED2_PIN_Pin);
|
|
||||||
if (! timerSupport[0].running) {
|
if (! timerSupport[0].running) {
|
||||||
|
HAL_GPIO_WritePin(LED0_GPIO_Port, LED0_Pin, GPIO_PIN_SET);
|
||||||
timerSupport[0].running = true;
|
timerSupport[0].running = true;
|
||||||
HAL_TIM_PWM_Start_DMA(timerSupport[0].handle, TIM_CHANNEL_1, (uint32_t*)IV, NUM_OF_SINE_SLOT);
|
__HAL_TIM_ENABLE_IT(timerSupport[0].handle, TIM_IT_UPDATE);
|
||||||
|
HAL_TIM_PWM_Start_DMA(timerSupport[0].handle, timerSupport[0].channel, (uint32_t*)IV, NUM_OF_SINE_SLOT);
|
||||||
}
|
}
|
||||||
} else if (htim->Channel == HAL_TIM_ACTIVE_CHANNEL_2) {
|
} else if (timer1Cnt == ((NUM_OF_SINE_SLOT * 2) / 3)) {
|
||||||
HAL_GPIO_TogglePin(LED3_PIN_GPIO_Port, LED3_PIN_Pin);
|
|
||||||
if (! timerSupport[1].running) {
|
if (! timerSupport[1].running) {
|
||||||
|
HAL_GPIO_WritePin(LED1_GPIO_Port, LED1_Pin, GPIO_PIN_SET);
|
||||||
timerSupport[1].running = true;
|
timerSupport[1].running = true;
|
||||||
HAL_TIM_PWM_Start_DMA(timerSupport[1].handle, TIM_CHANNEL_1, (uint32_t*)IV, NUM_OF_SINE_SLOT);
|
HAL_TIM_PWM_Start_DMA(timerSupport[1].handle, timerSupport[1].channel, (uint32_t*)IV, NUM_OF_SINE_SLOT);
|
||||||
|
__HAL_TIM_ENABLE_IT(timerSupport[1].handle, TIM_IT_UPDATE);
|
||||||
}
|
}
|
||||||
} else if (htim->Channel == HAL_TIM_ACTIVE_CHANNEL_3) {
|
} else if (timer1Cnt == ((NUM_OF_SINE_SLOT * 2) * 2 / 3)) {
|
||||||
HAL_GPIO_TogglePin(LED4_PIN_GPIO_Port, LED4_PIN_Pin);
|
|
||||||
if (! timerSupport[2].running) {
|
if (! timerSupport[2].running) {
|
||||||
|
HAL_GPIO_WritePin(LED2_GPIO_Port, LED2_Pin, GPIO_PIN_SET);
|
||||||
timerSupport[2].running = true;
|
timerSupport[2].running = true;
|
||||||
HAL_TIM_PWM_Start_DMA(timerSupport[2].handle, TIM_CHANNEL_1, (uint32_t*)IV, NUM_OF_SINE_SLOT);
|
HAL_TIM_PWM_Start_DMA(timerSupport[2].handle, timerSupport[2].channel, (uint32_t*)IV, NUM_OF_SINE_SLOT);
|
||||||
|
__HAL_TIM_ENABLE_IT(timerSupport[2].handle, TIM_IT_UPDATE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
timer1Cnt++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
#define INVERTER_H_
|
#define INVERTER_H_
|
||||||
|
|
||||||
|
|
||||||
void inverterInit();
|
void inverterBegin();
|
||||||
void inverterSetFrequency(uint8_t freqOut);
|
void inverterSetFrequency(uint8_t freqOut);
|
||||||
|
|
||||||
|
|
||||||
|
@ -24,7 +24,7 @@
|
|||||||
|
|
||||||
|
|
||||||
void blink(void *handle) {
|
void blink(void *handle) {
|
||||||
HAL_GPIO_TogglePin(LED_PIN_GPIO_Port, LED_PIN_Pin);
|
HAL_GPIO_TogglePin(LED_GPIO_Port, LED_Pin);
|
||||||
}
|
}
|
||||||
|
|
||||||
void my_setup_1() {
|
void my_setup_1() {
|
||||||
@ -44,8 +44,20 @@ void my_errorHandler() {
|
|||||||
HAL_GPIO_WritePin(ERROR_PIN_GPIO_Port, ERROR_PIN_Pin, GPIO_PIN_SET);
|
HAL_GPIO_WritePin(ERROR_PIN_GPIO_Port, ERROR_PIN_Pin, GPIO_PIN_SET);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void testSwitchFrequency1(void *handle) {
|
||||||
|
inverterSetFrequency(100);
|
||||||
|
}
|
||||||
|
void testSwitchFrequency2(void *handle) {
|
||||||
|
inverterSetFrequency(50);
|
||||||
|
}
|
||||||
|
|
||||||
void my_setup_2() {
|
void my_setup_2() {
|
||||||
inverterBegin();
|
inverterBegin();
|
||||||
|
|
||||||
|
inverterSetFrequency(50);
|
||||||
|
schAdd(testSwitchFrequency1, NULL, 5000, 0);
|
||||||
|
schAdd(testSwitchFrequency2, NULL, 10000, 0);
|
||||||
|
schAdd(testSwitchFrequency1, NULL, 15000, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
186
src/main.c
186
src/main.c
@ -43,9 +43,11 @@ RTC_HandleTypeDef hrtc;
|
|||||||
|
|
||||||
TIM_HandleTypeDef htim1;
|
TIM_HandleTypeDef htim1;
|
||||||
TIM_HandleTypeDef htim2;
|
TIM_HandleTypeDef htim2;
|
||||||
TIM_HandleTypeDef htim3;
|
|
||||||
TIM_HandleTypeDef htim4;
|
TIM_HandleTypeDef htim4;
|
||||||
|
TIM_HandleTypeDef htim5;
|
||||||
DMA_HandleTypeDef hdma_tim2_ch1;
|
DMA_HandleTypeDef hdma_tim2_ch1;
|
||||||
|
DMA_HandleTypeDef hdma_tim4_ch1;
|
||||||
|
DMA_HandleTypeDef hdma_tim5_ch2;
|
||||||
|
|
||||||
/* USER CODE BEGIN PV */
|
/* USER CODE BEGIN PV */
|
||||||
/* Private variables ---------------------------------------------------------*/
|
/* Private variables ---------------------------------------------------------*/
|
||||||
@ -60,8 +62,8 @@ static void MX_DMA_Init(void);
|
|||||||
static void MX_RTC_Init(void);
|
static void MX_RTC_Init(void);
|
||||||
static void MX_TIM1_Init(void);
|
static void MX_TIM1_Init(void);
|
||||||
static void MX_TIM2_Init(void);
|
static void MX_TIM2_Init(void);
|
||||||
static void MX_TIM3_Init(void);
|
|
||||||
static void MX_TIM4_Init(void);
|
static void MX_TIM4_Init(void);
|
||||||
|
static void MX_TIM5_Init(void);
|
||||||
|
|
||||||
void HAL_TIM_MspPostInit(TIM_HandleTypeDef *htim);
|
void HAL_TIM_MspPostInit(TIM_HandleTypeDef *htim);
|
||||||
|
|
||||||
@ -97,8 +99,8 @@ int main(void)
|
|||||||
MX_RTC_Init();
|
MX_RTC_Init();
|
||||||
MX_TIM1_Init();
|
MX_TIM1_Init();
|
||||||
MX_TIM2_Init();
|
MX_TIM2_Init();
|
||||||
MX_TIM3_Init();
|
|
||||||
MX_TIM4_Init();
|
MX_TIM4_Init();
|
||||||
|
MX_TIM5_Init();
|
||||||
|
|
||||||
/* USER CODE BEGIN 2 */
|
/* USER CODE BEGIN 2 */
|
||||||
my_setup_2();
|
my_setup_2();
|
||||||
@ -210,13 +212,11 @@ static void MX_TIM1_Init(void)
|
|||||||
|
|
||||||
TIM_ClockConfigTypeDef sClockSourceConfig;
|
TIM_ClockConfigTypeDef sClockSourceConfig;
|
||||||
TIM_MasterConfigTypeDef sMasterConfig;
|
TIM_MasterConfigTypeDef sMasterConfig;
|
||||||
TIM_BreakDeadTimeConfigTypeDef sBreakDeadTimeConfig;
|
|
||||||
TIM_OC_InitTypeDef sConfigOC;
|
|
||||||
|
|
||||||
htim1.Instance = TIM1;
|
htim1.Instance = TIM1;
|
||||||
htim1.Init.Prescaler = 36;
|
htim1.Init.Prescaler = 72;
|
||||||
htim1.Init.CounterMode = TIM_COUNTERMODE_UP;
|
htim1.Init.CounterMode = TIM_COUNTERMODE_UP;
|
||||||
htim1.Init.Period = 10000;
|
htim1.Init.Period = 5000;
|
||||||
htim1.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
|
htim1.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
|
||||||
htim1.Init.RepetitionCounter = 0;
|
htim1.Init.RepetitionCounter = 0;
|
||||||
if (HAL_TIM_Base_Init(&htim1) != HAL_OK)
|
if (HAL_TIM_Base_Init(&htim1) != HAL_OK)
|
||||||
@ -230,11 +230,6 @@ static void MX_TIM1_Init(void)
|
|||||||
Error_Handler();
|
Error_Handler();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (HAL_TIM_OC_Init(&htim1) != HAL_OK)
|
|
||||||
{
|
|
||||||
Error_Handler();
|
|
||||||
}
|
|
||||||
|
|
||||||
sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
|
sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
|
||||||
sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
|
sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
|
||||||
if (HAL_TIMEx_MasterConfigSynchronization(&htim1, &sMasterConfig) != HAL_OK)
|
if (HAL_TIMEx_MasterConfigSynchronization(&htim1, &sMasterConfig) != HAL_OK)
|
||||||
@ -242,44 +237,6 @@ static void MX_TIM1_Init(void)
|
|||||||
Error_Handler();
|
Error_Handler();
|
||||||
}
|
}
|
||||||
|
|
||||||
sBreakDeadTimeConfig.OffStateRunMode = TIM_OSSR_DISABLE;
|
|
||||||
sBreakDeadTimeConfig.OffStateIDLEMode = TIM_OSSI_DISABLE;
|
|
||||||
sBreakDeadTimeConfig.LockLevel = TIM_LOCKLEVEL_OFF;
|
|
||||||
sBreakDeadTimeConfig.DeadTime = 0;
|
|
||||||
sBreakDeadTimeConfig.BreakState = TIM_BREAK_DISABLE;
|
|
||||||
sBreakDeadTimeConfig.BreakPolarity = TIM_BREAKPOLARITY_HIGH;
|
|
||||||
sBreakDeadTimeConfig.AutomaticOutput = TIM_AUTOMATICOUTPUT_DISABLE;
|
|
||||||
if (HAL_TIMEx_ConfigBreakDeadTime(&htim1, &sBreakDeadTimeConfig) != HAL_OK)
|
|
||||||
{
|
|
||||||
Error_Handler();
|
|
||||||
}
|
|
||||||
|
|
||||||
sConfigOC.OCMode = TIM_OCMODE_TOGGLE;
|
|
||||||
sConfigOC.Pulse = 1000;
|
|
||||||
sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH;
|
|
||||||
sConfigOC.OCNPolarity = TIM_OCNPOLARITY_HIGH;
|
|
||||||
sConfigOC.OCFastMode = TIM_OCFAST_DISABLE;
|
|
||||||
sConfigOC.OCIdleState = TIM_OCIDLESTATE_RESET;
|
|
||||||
sConfigOC.OCNIdleState = TIM_OCNIDLESTATE_RESET;
|
|
||||||
if (HAL_TIM_OC_ConfigChannel(&htim1, &sConfigOC, TIM_CHANNEL_1) != HAL_OK)
|
|
||||||
{
|
|
||||||
Error_Handler();
|
|
||||||
}
|
|
||||||
|
|
||||||
sConfigOC.Pulse = 2000;
|
|
||||||
if (HAL_TIM_OC_ConfigChannel(&htim1, &sConfigOC, TIM_CHANNEL_2) != HAL_OK)
|
|
||||||
{
|
|
||||||
Error_Handler();
|
|
||||||
}
|
|
||||||
|
|
||||||
sConfigOC.Pulse = 3000;
|
|
||||||
if (HAL_TIM_OC_ConfigChannel(&htim1, &sConfigOC, TIM_CHANNEL_3) != HAL_OK)
|
|
||||||
{
|
|
||||||
Error_Handler();
|
|
||||||
}
|
|
||||||
|
|
||||||
HAL_TIM_MspPostInit(&htim1);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* TIM2 init function */
|
/* TIM2 init function */
|
||||||
@ -291,7 +248,7 @@ static void MX_TIM2_Init(void)
|
|||||||
TIM_OC_InitTypeDef sConfigOC;
|
TIM_OC_InitTypeDef sConfigOC;
|
||||||
|
|
||||||
htim2.Instance = TIM2;
|
htim2.Instance = TIM2;
|
||||||
htim2.Init.Prescaler = 1;
|
htim2.Init.Prescaler = 72;
|
||||||
htim2.Init.CounterMode = TIM_COUNTERMODE_UP;
|
htim2.Init.CounterMode = TIM_COUNTERMODE_UP;
|
||||||
htim2.Init.Period = 5000;
|
htim2.Init.Period = 5000;
|
||||||
htim2.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
|
htim2.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
|
||||||
@ -331,55 +288,6 @@ static void MX_TIM2_Init(void)
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* TIM3 init function */
|
|
||||||
static void MX_TIM3_Init(void)
|
|
||||||
{
|
|
||||||
|
|
||||||
TIM_ClockConfigTypeDef sClockSourceConfig;
|
|
||||||
TIM_MasterConfigTypeDef sMasterConfig;
|
|
||||||
TIM_OC_InitTypeDef sConfigOC;
|
|
||||||
|
|
||||||
htim3.Instance = TIM3;
|
|
||||||
htim3.Init.Prescaler = 1;
|
|
||||||
htim3.Init.CounterMode = TIM_COUNTERMODE_UP;
|
|
||||||
htim3.Init.Period = 5000;
|
|
||||||
htim3.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
|
|
||||||
if (HAL_TIM_Base_Init(&htim3) != HAL_OK)
|
|
||||||
{
|
|
||||||
Error_Handler();
|
|
||||||
}
|
|
||||||
|
|
||||||
sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL;
|
|
||||||
if (HAL_TIM_ConfigClockSource(&htim3, &sClockSourceConfig) != HAL_OK)
|
|
||||||
{
|
|
||||||
Error_Handler();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (HAL_TIM_PWM_Init(&htim3) != HAL_OK)
|
|
||||||
{
|
|
||||||
Error_Handler();
|
|
||||||
}
|
|
||||||
|
|
||||||
sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
|
|
||||||
sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
|
|
||||||
if (HAL_TIMEx_MasterConfigSynchronization(&htim3, &sMasterConfig) != HAL_OK)
|
|
||||||
{
|
|
||||||
Error_Handler();
|
|
||||||
}
|
|
||||||
|
|
||||||
sConfigOC.OCMode = TIM_OCMODE_PWM1;
|
|
||||||
sConfigOC.Pulse = 2000;
|
|
||||||
sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH;
|
|
||||||
sConfigOC.OCFastMode = TIM_OCFAST_DISABLE;
|
|
||||||
if (HAL_TIM_PWM_ConfigChannel(&htim3, &sConfigOC, TIM_CHANNEL_1) != HAL_OK)
|
|
||||||
{
|
|
||||||
Error_Handler();
|
|
||||||
}
|
|
||||||
|
|
||||||
HAL_TIM_MspPostInit(&htim3);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
/* TIM4 init function */
|
/* TIM4 init function */
|
||||||
static void MX_TIM4_Init(void)
|
static void MX_TIM4_Init(void)
|
||||||
{
|
{
|
||||||
@ -417,7 +325,7 @@ static void MX_TIM4_Init(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
sConfigOC.OCMode = TIM_OCMODE_PWM1;
|
sConfigOC.OCMode = TIM_OCMODE_PWM1;
|
||||||
sConfigOC.Pulse = 3000;
|
sConfigOC.Pulse = 0;
|
||||||
sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH;
|
sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH;
|
||||||
sConfigOC.OCFastMode = TIM_OCFAST_DISABLE;
|
sConfigOC.OCFastMode = TIM_OCFAST_DISABLE;
|
||||||
if (HAL_TIM_PWM_ConfigChannel(&htim4, &sConfigOC, TIM_CHANNEL_1) != HAL_OK)
|
if (HAL_TIM_PWM_ConfigChannel(&htim4, &sConfigOC, TIM_CHANNEL_1) != HAL_OK)
|
||||||
@ -429,6 +337,55 @@ static void MX_TIM4_Init(void)
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* TIM5 init function */
|
||||||
|
static void MX_TIM5_Init(void)
|
||||||
|
{
|
||||||
|
|
||||||
|
TIM_ClockConfigTypeDef sClockSourceConfig;
|
||||||
|
TIM_MasterConfigTypeDef sMasterConfig;
|
||||||
|
TIM_OC_InitTypeDef sConfigOC;
|
||||||
|
|
||||||
|
htim5.Instance = TIM5;
|
||||||
|
htim5.Init.Prescaler = 72;
|
||||||
|
htim5.Init.CounterMode = TIM_COUNTERMODE_UP;
|
||||||
|
htim5.Init.Period = 5000;
|
||||||
|
htim5.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
|
||||||
|
if (HAL_TIM_Base_Init(&htim5) != HAL_OK)
|
||||||
|
{
|
||||||
|
Error_Handler();
|
||||||
|
}
|
||||||
|
|
||||||
|
sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL;
|
||||||
|
if (HAL_TIM_ConfigClockSource(&htim5, &sClockSourceConfig) != HAL_OK)
|
||||||
|
{
|
||||||
|
Error_Handler();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (HAL_TIM_PWM_Init(&htim5) != HAL_OK)
|
||||||
|
{
|
||||||
|
Error_Handler();
|
||||||
|
}
|
||||||
|
|
||||||
|
sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
|
||||||
|
sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
|
||||||
|
if (HAL_TIMEx_MasterConfigSynchronization(&htim5, &sMasterConfig) != HAL_OK)
|
||||||
|
{
|
||||||
|
Error_Handler();
|
||||||
|
}
|
||||||
|
|
||||||
|
sConfigOC.OCMode = TIM_OCMODE_PWM1;
|
||||||
|
sConfigOC.Pulse = 0;
|
||||||
|
sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH;
|
||||||
|
sConfigOC.OCFastMode = TIM_OCFAST_DISABLE;
|
||||||
|
if (HAL_TIM_PWM_ConfigChannel(&htim5, &sConfigOC, TIM_CHANNEL_2) != HAL_OK)
|
||||||
|
{
|
||||||
|
Error_Handler();
|
||||||
|
}
|
||||||
|
|
||||||
|
HAL_TIM_MspPostInit(&htim5);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Enable DMA controller clock
|
* Enable DMA controller clock
|
||||||
*/
|
*/
|
||||||
@ -436,11 +393,18 @@ static void MX_DMA_Init(void)
|
|||||||
{
|
{
|
||||||
/* DMA controller clock enable */
|
/* DMA controller clock enable */
|
||||||
__HAL_RCC_DMA1_CLK_ENABLE();
|
__HAL_RCC_DMA1_CLK_ENABLE();
|
||||||
|
__HAL_RCC_DMA2_CLK_ENABLE();
|
||||||
|
|
||||||
/* DMA interrupt init */
|
/* DMA interrupt init */
|
||||||
|
/* DMA1_Channel1_IRQn interrupt configuration */
|
||||||
|
HAL_NVIC_SetPriority(DMA1_Channel1_IRQn, 0, 0);
|
||||||
|
HAL_NVIC_EnableIRQ(DMA1_Channel1_IRQn);
|
||||||
/* DMA1_Channel5_IRQn interrupt configuration */
|
/* DMA1_Channel5_IRQn interrupt configuration */
|
||||||
HAL_NVIC_SetPriority(DMA1_Channel5_IRQn, 0, 0);
|
HAL_NVIC_SetPriority(DMA1_Channel5_IRQn, 0, 0);
|
||||||
HAL_NVIC_EnableIRQ(DMA1_Channel5_IRQn);
|
HAL_NVIC_EnableIRQ(DMA1_Channel5_IRQn);
|
||||||
|
/* DMA2_Channel4_5_IRQn interrupt configuration */
|
||||||
|
HAL_NVIC_SetPriority(DMA2_Channel4_5_IRQn, 0, 0);
|
||||||
|
HAL_NVIC_EnableIRQ(DMA2_Channel4_5_IRQn);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -464,31 +428,31 @@ static void MX_GPIO_Init(void)
|
|||||||
__HAL_RCC_GPIOD_CLK_ENABLE();
|
__HAL_RCC_GPIOD_CLK_ENABLE();
|
||||||
|
|
||||||
/*Configure GPIO pin Output Level */
|
/*Configure GPIO pin Output Level */
|
||||||
HAL_GPIO_WritePin(GPIOE, LED2_PIN_Pin|LED3_PIN_Pin|LED4_PIN_Pin, GPIO_PIN_RESET);
|
HAL_GPIO_WritePin(GPIOE, LED0_Pin|LED1_Pin|LED2_Pin, GPIO_PIN_RESET);
|
||||||
|
|
||||||
/*Configure GPIO pin Output Level */
|
/*Configure GPIO pin Output Level */
|
||||||
HAL_GPIO_WritePin(GPIOC, LED_PIN_Pin|BridgePolarity_Pin, GPIO_PIN_RESET);
|
HAL_GPIO_WritePin(GPIOC, LED_Pin|BridgePolarity0_Pin|BridgePolarity1_Pin|BridgePolarity2_Pin, GPIO_PIN_RESET);
|
||||||
|
|
||||||
/*Configure GPIO pin Output Level */
|
/*Configure GPIO pin Output Level */
|
||||||
HAL_GPIO_WritePin(ERROR_PIN_GPIO_Port, ERROR_PIN_Pin, GPIO_PIN_RESET);
|
HAL_GPIO_WritePin(GPIOB, ERROR_PIN_Pin|Sync_Pin, GPIO_PIN_RESET);
|
||||||
|
|
||||||
/*Configure GPIO pins : LED2_PIN_Pin LED3_PIN_Pin LED4_PIN_Pin */
|
/*Configure GPIO pins : LED0_Pin LED1_Pin LED2_Pin */
|
||||||
GPIO_InitStruct.Pin = LED2_PIN_Pin|LED3_PIN_Pin|LED4_PIN_Pin;
|
GPIO_InitStruct.Pin = LED0_Pin|LED1_Pin|LED2_Pin;
|
||||||
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
|
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
|
||||||
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
|
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
|
||||||
HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);
|
HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);
|
||||||
|
|
||||||
/*Configure GPIO pins : LED_PIN_Pin BridgePolarity_Pin */
|
/*Configure GPIO pins : LED_Pin BridgePolarity0_Pin BridgePolarity1_Pin BridgePolarity2_Pin */
|
||||||
GPIO_InitStruct.Pin = LED_PIN_Pin|BridgePolarity_Pin;
|
GPIO_InitStruct.Pin = LED_Pin|BridgePolarity0_Pin|BridgePolarity1_Pin|BridgePolarity2_Pin;
|
||||||
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
|
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
|
||||||
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
|
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
|
||||||
HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
|
HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
|
||||||
|
|
||||||
/*Configure GPIO pin : ERROR_PIN_Pin */
|
/*Configure GPIO pins : ERROR_PIN_Pin Sync_Pin */
|
||||||
GPIO_InitStruct.Pin = ERROR_PIN_Pin;
|
GPIO_InitStruct.Pin = ERROR_PIN_Pin|Sync_Pin;
|
||||||
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
|
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
|
||||||
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
|
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
|
||||||
HAL_GPIO_Init(ERROR_PIN_GPIO_Port, &GPIO_InitStruct);
|
HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
184
src/main.c-bak
184
src/main.c-bak
@ -42,9 +42,11 @@ RTC_HandleTypeDef hrtc;
|
|||||||
|
|
||||||
TIM_HandleTypeDef htim1;
|
TIM_HandleTypeDef htim1;
|
||||||
TIM_HandleTypeDef htim2;
|
TIM_HandleTypeDef htim2;
|
||||||
TIM_HandleTypeDef htim3;
|
|
||||||
TIM_HandleTypeDef htim4;
|
TIM_HandleTypeDef htim4;
|
||||||
|
TIM_HandleTypeDef htim5;
|
||||||
DMA_HandleTypeDef hdma_tim2_ch1;
|
DMA_HandleTypeDef hdma_tim2_ch1;
|
||||||
|
DMA_HandleTypeDef hdma_tim4_ch1;
|
||||||
|
DMA_HandleTypeDef hdma_tim5_ch2;
|
||||||
|
|
||||||
/* USER CODE BEGIN PV */
|
/* USER CODE BEGIN PV */
|
||||||
/* Private variables ---------------------------------------------------------*/
|
/* Private variables ---------------------------------------------------------*/
|
||||||
@ -59,8 +61,8 @@ static void MX_DMA_Init(void);
|
|||||||
static void MX_RTC_Init(void);
|
static void MX_RTC_Init(void);
|
||||||
static void MX_TIM1_Init(void);
|
static void MX_TIM1_Init(void);
|
||||||
static void MX_TIM2_Init(void);
|
static void MX_TIM2_Init(void);
|
||||||
static void MX_TIM3_Init(void);
|
|
||||||
static void MX_TIM4_Init(void);
|
static void MX_TIM4_Init(void);
|
||||||
|
static void MX_TIM5_Init(void);
|
||||||
|
|
||||||
void HAL_TIM_MspPostInit(TIM_HandleTypeDef *htim);
|
void HAL_TIM_MspPostInit(TIM_HandleTypeDef *htim);
|
||||||
|
|
||||||
@ -95,8 +97,8 @@ int main(void)
|
|||||||
MX_RTC_Init();
|
MX_RTC_Init();
|
||||||
MX_TIM1_Init();
|
MX_TIM1_Init();
|
||||||
MX_TIM2_Init();
|
MX_TIM2_Init();
|
||||||
MX_TIM3_Init();
|
|
||||||
MX_TIM4_Init();
|
MX_TIM4_Init();
|
||||||
|
MX_TIM5_Init();
|
||||||
|
|
||||||
/* USER CODE BEGIN 2 */
|
/* USER CODE BEGIN 2 */
|
||||||
|
|
||||||
@ -206,13 +208,11 @@ static void MX_TIM1_Init(void)
|
|||||||
|
|
||||||
TIM_ClockConfigTypeDef sClockSourceConfig;
|
TIM_ClockConfigTypeDef sClockSourceConfig;
|
||||||
TIM_MasterConfigTypeDef sMasterConfig;
|
TIM_MasterConfigTypeDef sMasterConfig;
|
||||||
TIM_BreakDeadTimeConfigTypeDef sBreakDeadTimeConfig;
|
|
||||||
TIM_OC_InitTypeDef sConfigOC;
|
|
||||||
|
|
||||||
htim1.Instance = TIM1;
|
htim1.Instance = TIM1;
|
||||||
htim1.Init.Prescaler = 36;
|
htim1.Init.Prescaler = 72;
|
||||||
htim1.Init.CounterMode = TIM_COUNTERMODE_UP;
|
htim1.Init.CounterMode = TIM_COUNTERMODE_UP;
|
||||||
htim1.Init.Period = 10000;
|
htim1.Init.Period = 5000;
|
||||||
htim1.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
|
htim1.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
|
||||||
htim1.Init.RepetitionCounter = 0;
|
htim1.Init.RepetitionCounter = 0;
|
||||||
if (HAL_TIM_Base_Init(&htim1) != HAL_OK)
|
if (HAL_TIM_Base_Init(&htim1) != HAL_OK)
|
||||||
@ -226,11 +226,6 @@ static void MX_TIM1_Init(void)
|
|||||||
Error_Handler();
|
Error_Handler();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (HAL_TIM_OC_Init(&htim1) != HAL_OK)
|
|
||||||
{
|
|
||||||
Error_Handler();
|
|
||||||
}
|
|
||||||
|
|
||||||
sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
|
sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
|
||||||
sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
|
sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
|
||||||
if (HAL_TIMEx_MasterConfigSynchronization(&htim1, &sMasterConfig) != HAL_OK)
|
if (HAL_TIMEx_MasterConfigSynchronization(&htim1, &sMasterConfig) != HAL_OK)
|
||||||
@ -238,44 +233,6 @@ static void MX_TIM1_Init(void)
|
|||||||
Error_Handler();
|
Error_Handler();
|
||||||
}
|
}
|
||||||
|
|
||||||
sBreakDeadTimeConfig.OffStateRunMode = TIM_OSSR_DISABLE;
|
|
||||||
sBreakDeadTimeConfig.OffStateIDLEMode = TIM_OSSI_DISABLE;
|
|
||||||
sBreakDeadTimeConfig.LockLevel = TIM_LOCKLEVEL_OFF;
|
|
||||||
sBreakDeadTimeConfig.DeadTime = 0;
|
|
||||||
sBreakDeadTimeConfig.BreakState = TIM_BREAK_DISABLE;
|
|
||||||
sBreakDeadTimeConfig.BreakPolarity = TIM_BREAKPOLARITY_HIGH;
|
|
||||||
sBreakDeadTimeConfig.AutomaticOutput = TIM_AUTOMATICOUTPUT_DISABLE;
|
|
||||||
if (HAL_TIMEx_ConfigBreakDeadTime(&htim1, &sBreakDeadTimeConfig) != HAL_OK)
|
|
||||||
{
|
|
||||||
Error_Handler();
|
|
||||||
}
|
|
||||||
|
|
||||||
sConfigOC.OCMode = TIM_OCMODE_TOGGLE;
|
|
||||||
sConfigOC.Pulse = 1000;
|
|
||||||
sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH;
|
|
||||||
sConfigOC.OCNPolarity = TIM_OCNPOLARITY_HIGH;
|
|
||||||
sConfigOC.OCFastMode = TIM_OCFAST_DISABLE;
|
|
||||||
sConfigOC.OCIdleState = TIM_OCIDLESTATE_RESET;
|
|
||||||
sConfigOC.OCNIdleState = TIM_OCNIDLESTATE_RESET;
|
|
||||||
if (HAL_TIM_OC_ConfigChannel(&htim1, &sConfigOC, TIM_CHANNEL_1) != HAL_OK)
|
|
||||||
{
|
|
||||||
Error_Handler();
|
|
||||||
}
|
|
||||||
|
|
||||||
sConfigOC.Pulse = 2000;
|
|
||||||
if (HAL_TIM_OC_ConfigChannel(&htim1, &sConfigOC, TIM_CHANNEL_2) != HAL_OK)
|
|
||||||
{
|
|
||||||
Error_Handler();
|
|
||||||
}
|
|
||||||
|
|
||||||
sConfigOC.Pulse = 3000;
|
|
||||||
if (HAL_TIM_OC_ConfigChannel(&htim1, &sConfigOC, TIM_CHANNEL_3) != HAL_OK)
|
|
||||||
{
|
|
||||||
Error_Handler();
|
|
||||||
}
|
|
||||||
|
|
||||||
HAL_TIM_MspPostInit(&htim1);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* TIM2 init function */
|
/* TIM2 init function */
|
||||||
@ -327,55 +284,6 @@ static void MX_TIM2_Init(void)
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* TIM3 init function */
|
|
||||||
static void MX_TIM3_Init(void)
|
|
||||||
{
|
|
||||||
|
|
||||||
TIM_ClockConfigTypeDef sClockSourceConfig;
|
|
||||||
TIM_MasterConfigTypeDef sMasterConfig;
|
|
||||||
TIM_OC_InitTypeDef sConfigOC;
|
|
||||||
|
|
||||||
htim3.Instance = TIM3;
|
|
||||||
htim3.Init.Prescaler = 72;
|
|
||||||
htim3.Init.CounterMode = TIM_COUNTERMODE_UP;
|
|
||||||
htim3.Init.Period = 5000;
|
|
||||||
htim3.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
|
|
||||||
if (HAL_TIM_Base_Init(&htim3) != HAL_OK)
|
|
||||||
{
|
|
||||||
Error_Handler();
|
|
||||||
}
|
|
||||||
|
|
||||||
sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL;
|
|
||||||
if (HAL_TIM_ConfigClockSource(&htim3, &sClockSourceConfig) != HAL_OK)
|
|
||||||
{
|
|
||||||
Error_Handler();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (HAL_TIM_PWM_Init(&htim3) != HAL_OK)
|
|
||||||
{
|
|
||||||
Error_Handler();
|
|
||||||
}
|
|
||||||
|
|
||||||
sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
|
|
||||||
sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
|
|
||||||
if (HAL_TIMEx_MasterConfigSynchronization(&htim3, &sMasterConfig) != HAL_OK)
|
|
||||||
{
|
|
||||||
Error_Handler();
|
|
||||||
}
|
|
||||||
|
|
||||||
sConfigOC.OCMode = TIM_OCMODE_PWM1;
|
|
||||||
sConfigOC.Pulse = 2000;
|
|
||||||
sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH;
|
|
||||||
sConfigOC.OCFastMode = TIM_OCFAST_DISABLE;
|
|
||||||
if (HAL_TIM_PWM_ConfigChannel(&htim3, &sConfigOC, TIM_CHANNEL_1) != HAL_OK)
|
|
||||||
{
|
|
||||||
Error_Handler();
|
|
||||||
}
|
|
||||||
|
|
||||||
HAL_TIM_MspPostInit(&htim3);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
/* TIM4 init function */
|
/* TIM4 init function */
|
||||||
static void MX_TIM4_Init(void)
|
static void MX_TIM4_Init(void)
|
||||||
{
|
{
|
||||||
@ -413,7 +321,7 @@ static void MX_TIM4_Init(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
sConfigOC.OCMode = TIM_OCMODE_PWM1;
|
sConfigOC.OCMode = TIM_OCMODE_PWM1;
|
||||||
sConfigOC.Pulse = 3000;
|
sConfigOC.Pulse = 0;
|
||||||
sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH;
|
sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH;
|
||||||
sConfigOC.OCFastMode = TIM_OCFAST_DISABLE;
|
sConfigOC.OCFastMode = TIM_OCFAST_DISABLE;
|
||||||
if (HAL_TIM_PWM_ConfigChannel(&htim4, &sConfigOC, TIM_CHANNEL_1) != HAL_OK)
|
if (HAL_TIM_PWM_ConfigChannel(&htim4, &sConfigOC, TIM_CHANNEL_1) != HAL_OK)
|
||||||
@ -425,6 +333,55 @@ static void MX_TIM4_Init(void)
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* TIM5 init function */
|
||||||
|
static void MX_TIM5_Init(void)
|
||||||
|
{
|
||||||
|
|
||||||
|
TIM_ClockConfigTypeDef sClockSourceConfig;
|
||||||
|
TIM_MasterConfigTypeDef sMasterConfig;
|
||||||
|
TIM_OC_InitTypeDef sConfigOC;
|
||||||
|
|
||||||
|
htim5.Instance = TIM5;
|
||||||
|
htim5.Init.Prescaler = 72;
|
||||||
|
htim5.Init.CounterMode = TIM_COUNTERMODE_UP;
|
||||||
|
htim5.Init.Period = 5000;
|
||||||
|
htim5.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
|
||||||
|
if (HAL_TIM_Base_Init(&htim5) != HAL_OK)
|
||||||
|
{
|
||||||
|
Error_Handler();
|
||||||
|
}
|
||||||
|
|
||||||
|
sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL;
|
||||||
|
if (HAL_TIM_ConfigClockSource(&htim5, &sClockSourceConfig) != HAL_OK)
|
||||||
|
{
|
||||||
|
Error_Handler();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (HAL_TIM_PWM_Init(&htim5) != HAL_OK)
|
||||||
|
{
|
||||||
|
Error_Handler();
|
||||||
|
}
|
||||||
|
|
||||||
|
sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
|
||||||
|
sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
|
||||||
|
if (HAL_TIMEx_MasterConfigSynchronization(&htim5, &sMasterConfig) != HAL_OK)
|
||||||
|
{
|
||||||
|
Error_Handler();
|
||||||
|
}
|
||||||
|
|
||||||
|
sConfigOC.OCMode = TIM_OCMODE_PWM1;
|
||||||
|
sConfigOC.Pulse = 0;
|
||||||
|
sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH;
|
||||||
|
sConfigOC.OCFastMode = TIM_OCFAST_DISABLE;
|
||||||
|
if (HAL_TIM_PWM_ConfigChannel(&htim5, &sConfigOC, TIM_CHANNEL_2) != HAL_OK)
|
||||||
|
{
|
||||||
|
Error_Handler();
|
||||||
|
}
|
||||||
|
|
||||||
|
HAL_TIM_MspPostInit(&htim5);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Enable DMA controller clock
|
* Enable DMA controller clock
|
||||||
*/
|
*/
|
||||||
@ -432,11 +389,18 @@ static void MX_DMA_Init(void)
|
|||||||
{
|
{
|
||||||
/* DMA controller clock enable */
|
/* DMA controller clock enable */
|
||||||
__HAL_RCC_DMA1_CLK_ENABLE();
|
__HAL_RCC_DMA1_CLK_ENABLE();
|
||||||
|
__HAL_RCC_DMA2_CLK_ENABLE();
|
||||||
|
|
||||||
/* DMA interrupt init */
|
/* DMA interrupt init */
|
||||||
|
/* DMA1_Channel1_IRQn interrupt configuration */
|
||||||
|
HAL_NVIC_SetPriority(DMA1_Channel1_IRQn, 0, 0);
|
||||||
|
HAL_NVIC_EnableIRQ(DMA1_Channel1_IRQn);
|
||||||
/* DMA1_Channel5_IRQn interrupt configuration */
|
/* DMA1_Channel5_IRQn interrupt configuration */
|
||||||
HAL_NVIC_SetPriority(DMA1_Channel5_IRQn, 0, 0);
|
HAL_NVIC_SetPriority(DMA1_Channel5_IRQn, 0, 0);
|
||||||
HAL_NVIC_EnableIRQ(DMA1_Channel5_IRQn);
|
HAL_NVIC_EnableIRQ(DMA1_Channel5_IRQn);
|
||||||
|
/* DMA2_Channel4_5_IRQn interrupt configuration */
|
||||||
|
HAL_NVIC_SetPriority(DMA2_Channel4_5_IRQn, 0, 0);
|
||||||
|
HAL_NVIC_EnableIRQ(DMA2_Channel4_5_IRQn);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -460,31 +424,31 @@ static void MX_GPIO_Init(void)
|
|||||||
__HAL_RCC_GPIOD_CLK_ENABLE();
|
__HAL_RCC_GPIOD_CLK_ENABLE();
|
||||||
|
|
||||||
/*Configure GPIO pin Output Level */
|
/*Configure GPIO pin Output Level */
|
||||||
HAL_GPIO_WritePin(GPIOE, LED2_PIN_Pin|LED3_PIN_Pin|LED4_PIN_Pin, GPIO_PIN_RESET);
|
HAL_GPIO_WritePin(GPIOE, LED0_Pin|LED1_Pin|LED2_Pin, GPIO_PIN_RESET);
|
||||||
|
|
||||||
/*Configure GPIO pin Output Level */
|
/*Configure GPIO pin Output Level */
|
||||||
HAL_GPIO_WritePin(GPIOC, LED_PIN_Pin|BridgePolarity_Pin, GPIO_PIN_RESET);
|
HAL_GPIO_WritePin(GPIOC, LED_Pin|BridgePolarity0_Pin|BridgePolarity1_Pin|BridgePolarity2_Pin, GPIO_PIN_RESET);
|
||||||
|
|
||||||
/*Configure GPIO pin Output Level */
|
/*Configure GPIO pin Output Level */
|
||||||
HAL_GPIO_WritePin(ERROR_PIN_GPIO_Port, ERROR_PIN_Pin, GPIO_PIN_RESET);
|
HAL_GPIO_WritePin(GPIOB, ERROR_PIN_Pin|Sync_Pin, GPIO_PIN_RESET);
|
||||||
|
|
||||||
/*Configure GPIO pins : LED2_PIN_Pin LED3_PIN_Pin LED4_PIN_Pin */
|
/*Configure GPIO pins : LED0_Pin LED1_Pin LED2_Pin */
|
||||||
GPIO_InitStruct.Pin = LED2_PIN_Pin|LED3_PIN_Pin|LED4_PIN_Pin;
|
GPIO_InitStruct.Pin = LED0_Pin|LED1_Pin|LED2_Pin;
|
||||||
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
|
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
|
||||||
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
|
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
|
||||||
HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);
|
HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);
|
||||||
|
|
||||||
/*Configure GPIO pins : LED_PIN_Pin BridgePolarity_Pin */
|
/*Configure GPIO pins : LED_Pin BridgePolarity0_Pin BridgePolarity1_Pin BridgePolarity2_Pin */
|
||||||
GPIO_InitStruct.Pin = LED_PIN_Pin|BridgePolarity_Pin;
|
GPIO_InitStruct.Pin = LED_Pin|BridgePolarity0_Pin|BridgePolarity1_Pin|BridgePolarity2_Pin;
|
||||||
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
|
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
|
||||||
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
|
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
|
||||||
HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
|
HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
|
||||||
|
|
||||||
/*Configure GPIO pin : ERROR_PIN_Pin */
|
/*Configure GPIO pins : ERROR_PIN_Pin Sync_Pin */
|
||||||
GPIO_InitStruct.Pin = ERROR_PIN_Pin;
|
GPIO_InitStruct.Pin = ERROR_PIN_Pin|Sync_Pin;
|
||||||
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
|
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
|
||||||
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
|
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
|
||||||
HAL_GPIO_Init(ERROR_PIN_GPIO_Port, &GPIO_InitStruct);
|
HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -36,6 +36,10 @@
|
|||||||
|
|
||||||
extern DMA_HandleTypeDef hdma_tim2_ch1;
|
extern DMA_HandleTypeDef hdma_tim2_ch1;
|
||||||
|
|
||||||
|
extern DMA_HandleTypeDef hdma_tim4_ch1;
|
||||||
|
|
||||||
|
extern DMA_HandleTypeDef hdma_tim5_ch2;
|
||||||
|
|
||||||
extern void Error_Handler(void);
|
extern void Error_Handler(void);
|
||||||
/* USER CODE BEGIN 0 */
|
/* USER CODE BEGIN 0 */
|
||||||
|
|
||||||
@ -127,8 +131,8 @@ void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* htim_base)
|
|||||||
/* Peripheral clock enable */
|
/* Peripheral clock enable */
|
||||||
__HAL_RCC_TIM1_CLK_ENABLE();
|
__HAL_RCC_TIM1_CLK_ENABLE();
|
||||||
/* Peripheral interrupt init */
|
/* Peripheral interrupt init */
|
||||||
HAL_NVIC_SetPriority(TIM1_CC_IRQn, 0, 0);
|
HAL_NVIC_SetPriority(TIM1_UP_IRQn, 0, 0);
|
||||||
HAL_NVIC_EnableIRQ(TIM1_CC_IRQn);
|
HAL_NVIC_EnableIRQ(TIM1_UP_IRQn);
|
||||||
/* USER CODE BEGIN TIM1_MspInit 1 */
|
/* USER CODE BEGIN TIM1_MspInit 1 */
|
||||||
|
|
||||||
/* USER CODE END TIM1_MspInit 1 */
|
/* USER CODE END TIM1_MspInit 1 */
|
||||||
@ -165,17 +169,6 @@ void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* htim_base)
|
|||||||
|
|
||||||
/* USER CODE END TIM2_MspInit 1 */
|
/* USER CODE END TIM2_MspInit 1 */
|
||||||
}
|
}
|
||||||
else if(htim_base->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_base->Instance==TIM4)
|
else if(htim_base->Instance==TIM4)
|
||||||
{
|
{
|
||||||
/* USER CODE BEGIN TIM4_MspInit 0 */
|
/* USER CODE BEGIN TIM4_MspInit 0 */
|
||||||
@ -183,10 +176,63 @@ void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* htim_base)
|
|||||||
/* USER CODE END TIM4_MspInit 0 */
|
/* USER CODE END TIM4_MspInit 0 */
|
||||||
/* Peripheral clock enable */
|
/* Peripheral clock enable */
|
||||||
__HAL_RCC_TIM4_CLK_ENABLE();
|
__HAL_RCC_TIM4_CLK_ENABLE();
|
||||||
|
|
||||||
|
/* Peripheral DMA init*/
|
||||||
|
|
||||||
|
hdma_tim4_ch1.Instance = DMA1_Channel1;
|
||||||
|
hdma_tim4_ch1.Init.Direction = DMA_MEMORY_TO_PERIPH;
|
||||||
|
hdma_tim4_ch1.Init.PeriphInc = DMA_PINC_DISABLE;
|
||||||
|
hdma_tim4_ch1.Init.MemInc = DMA_MINC_ENABLE;
|
||||||
|
hdma_tim4_ch1.Init.PeriphDataAlignment = DMA_PDATAALIGN_HALFWORD;
|
||||||
|
hdma_tim4_ch1.Init.MemDataAlignment = DMA_MDATAALIGN_HALFWORD;
|
||||||
|
hdma_tim4_ch1.Init.Mode = DMA_CIRCULAR;
|
||||||
|
hdma_tim4_ch1.Init.Priority = DMA_PRIORITY_LOW;
|
||||||
|
if (HAL_DMA_Init(&hdma_tim4_ch1) != HAL_OK)
|
||||||
|
{
|
||||||
|
Error_Handler();
|
||||||
|
}
|
||||||
|
|
||||||
|
__HAL_LINKDMA(htim_base,hdma[TIM_DMA_ID_CC1],hdma_tim4_ch1);
|
||||||
|
|
||||||
|
/* Peripheral interrupt init */
|
||||||
|
HAL_NVIC_SetPriority(TIM4_IRQn, 0, 0);
|
||||||
|
HAL_NVIC_EnableIRQ(TIM4_IRQn);
|
||||||
/* USER CODE BEGIN TIM4_MspInit 1 */
|
/* USER CODE BEGIN TIM4_MspInit 1 */
|
||||||
|
|
||||||
/* USER CODE END TIM4_MspInit 1 */
|
/* USER CODE END TIM4_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();
|
||||||
|
|
||||||
|
/* Peripheral DMA init*/
|
||||||
|
|
||||||
|
hdma_tim5_ch2.Instance = DMA2_Channel4;
|
||||||
|
hdma_tim5_ch2.Init.Direction = DMA_MEMORY_TO_PERIPH;
|
||||||
|
hdma_tim5_ch2.Init.PeriphInc = DMA_PINC_DISABLE;
|
||||||
|
hdma_tim5_ch2.Init.MemInc = DMA_MINC_ENABLE;
|
||||||
|
hdma_tim5_ch2.Init.PeriphDataAlignment = DMA_PDATAALIGN_HALFWORD;
|
||||||
|
hdma_tim5_ch2.Init.MemDataAlignment = DMA_MDATAALIGN_HALFWORD;
|
||||||
|
hdma_tim5_ch2.Init.Mode = DMA_CIRCULAR;
|
||||||
|
hdma_tim5_ch2.Init.Priority = DMA_PRIORITY_LOW;
|
||||||
|
if (HAL_DMA_Init(&hdma_tim5_ch2) != HAL_OK)
|
||||||
|
{
|
||||||
|
Error_Handler();
|
||||||
|
}
|
||||||
|
|
||||||
|
__HAL_LINKDMA(htim_base,hdma[TIM_DMA_ID_CC2],hdma_tim5_ch2);
|
||||||
|
|
||||||
|
/* Peripheral 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 */
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -194,33 +240,11 @@ void HAL_TIM_MspPostInit(TIM_HandleTypeDef* htim)
|
|||||||
{
|
{
|
||||||
|
|
||||||
GPIO_InitTypeDef GPIO_InitStruct;
|
GPIO_InitTypeDef GPIO_InitStruct;
|
||||||
if(htim->Instance==TIM1)
|
if(htim->Instance==TIM2)
|
||||||
{
|
|
||||||
/* USER CODE BEGIN TIM1_MspPostInit 0 */
|
|
||||||
|
|
||||||
/* USER CODE END TIM1_MspPostInit 0 */
|
|
||||||
/**TIM1 GPIO Configuration
|
|
||||||
PE9 ------> TIM1_CH1
|
|
||||||
PE11 ------> TIM1_CH2
|
|
||||||
PE13 ------> TIM1_CH3
|
|
||||||
*/
|
|
||||||
GPIO_InitStruct.Pin = GPIO_PIN_9|GPIO_PIN_11|GPIO_PIN_13;
|
|
||||||
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
|
|
||||||
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
|
|
||||||
HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);
|
|
||||||
|
|
||||||
__HAL_AFIO_REMAP_TIM1_ENABLE();
|
|
||||||
|
|
||||||
/* USER CODE BEGIN TIM1_MspPostInit 1 */
|
|
||||||
|
|
||||||
/* USER CODE END TIM1_MspPostInit 1 */
|
|
||||||
}
|
|
||||||
else if(htim->Instance==TIM2)
|
|
||||||
{
|
{
|
||||||
/* USER CODE BEGIN TIM2_MspPostInit 0 */
|
/* USER CODE BEGIN TIM2_MspPostInit 0 */
|
||||||
|
|
||||||
/* USER CODE END TIM2_MspPostInit 0 */
|
/* USER CODE END TIM2_MspPostInit 0 */
|
||||||
|
|
||||||
/**TIM2 GPIO Configuration
|
/**TIM2 GPIO Configuration
|
||||||
PA0-WKUP ------> TIM2_CH1
|
PA0-WKUP ------> TIM2_CH1
|
||||||
*/
|
*/
|
||||||
@ -233,24 +257,6 @@ void HAL_TIM_MspPostInit(TIM_HandleTypeDef* htim)
|
|||||||
|
|
||||||
/* USER CODE END TIM2_MspPostInit 1 */
|
/* USER CODE END TIM2_MspPostInit 1 */
|
||||||
}
|
}
|
||||||
else if(htim->Instance==TIM3)
|
|
||||||
{
|
|
||||||
/* USER CODE BEGIN TIM3_MspPostInit 0 */
|
|
||||||
|
|
||||||
/* USER CODE END TIM3_MspPostInit 0 */
|
|
||||||
|
|
||||||
/**TIM3 GPIO Configuration
|
|
||||||
PA6 ------> TIM3_CH1
|
|
||||||
*/
|
|
||||||
GPIO_InitStruct.Pin = GPIO_PIN_6;
|
|
||||||
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
|
|
||||||
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
|
|
||||||
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
|
|
||||||
|
|
||||||
/* USER CODE BEGIN TIM3_MspPostInit 1 */
|
|
||||||
|
|
||||||
/* USER CODE END TIM3_MspPostInit 1 */
|
|
||||||
}
|
|
||||||
else if(htim->Instance==TIM4)
|
else if(htim->Instance==TIM4)
|
||||||
{
|
{
|
||||||
/* USER CODE BEGIN TIM4_MspPostInit 0 */
|
/* USER CODE BEGIN TIM4_MspPostInit 0 */
|
||||||
@ -271,6 +277,24 @@ void HAL_TIM_MspPostInit(TIM_HandleTypeDef* htim)
|
|||||||
|
|
||||||
/* USER CODE END TIM4_MspPostInit 1 */
|
/* USER CODE END TIM4_MspPostInit 1 */
|
||||||
}
|
}
|
||||||
|
else if(htim->Instance==TIM5)
|
||||||
|
{
|
||||||
|
/* USER CODE BEGIN TIM5_MspPostInit 0 */
|
||||||
|
|
||||||
|
/* USER CODE END TIM5_MspPostInit 0 */
|
||||||
|
|
||||||
|
/**TIM5 GPIO Configuration
|
||||||
|
PA1 ------> TIM5_CH2
|
||||||
|
*/
|
||||||
|
GPIO_InitStruct.Pin = GPIO_PIN_1;
|
||||||
|
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
|
||||||
|
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
|
||||||
|
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
|
||||||
|
|
||||||
|
/* USER CODE BEGIN TIM5_MspPostInit 1 */
|
||||||
|
|
||||||
|
/* USER CODE END TIM5_MspPostInit 1 */
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -286,7 +310,7 @@ void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef* htim_base)
|
|||||||
__HAL_RCC_TIM1_CLK_DISABLE();
|
__HAL_RCC_TIM1_CLK_DISABLE();
|
||||||
|
|
||||||
/* Peripheral interrupt DeInit*/
|
/* Peripheral interrupt DeInit*/
|
||||||
HAL_NVIC_DisableIRQ(TIM1_CC_IRQn);
|
HAL_NVIC_DisableIRQ(TIM1_UP_IRQn);
|
||||||
|
|
||||||
/* USER CODE BEGIN TIM1_MspDeInit 1 */
|
/* USER CODE BEGIN TIM1_MspDeInit 1 */
|
||||||
|
|
||||||
@ -310,17 +334,6 @@ void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef* htim_base)
|
|||||||
|
|
||||||
/* USER CODE END TIM2_MspDeInit 1 */
|
/* USER CODE END TIM2_MspDeInit 1 */
|
||||||
}
|
}
|
||||||
else if(htim_base->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_base->Instance==TIM4)
|
else if(htim_base->Instance==TIM4)
|
||||||
{
|
{
|
||||||
/* USER CODE BEGIN TIM4_MspDeInit 0 */
|
/* USER CODE BEGIN TIM4_MspDeInit 0 */
|
||||||
@ -328,10 +341,35 @@ void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef* htim_base)
|
|||||||
/* USER CODE END TIM4_MspDeInit 0 */
|
/* USER CODE END TIM4_MspDeInit 0 */
|
||||||
/* Peripheral clock disable */
|
/* Peripheral clock disable */
|
||||||
__HAL_RCC_TIM4_CLK_DISABLE();
|
__HAL_RCC_TIM4_CLK_DISABLE();
|
||||||
|
|
||||||
|
/* Peripheral DMA DeInit*/
|
||||||
|
HAL_DMA_DeInit(htim_base->hdma[TIM_DMA_ID_CC1]);
|
||||||
|
|
||||||
|
/* Peripheral interrupt DeInit*/
|
||||||
|
HAL_NVIC_DisableIRQ(TIM4_IRQn);
|
||||||
|
|
||||||
/* USER CODE BEGIN TIM4_MspDeInit 1 */
|
/* USER CODE BEGIN TIM4_MspDeInit 1 */
|
||||||
|
|
||||||
/* USER CODE END TIM4_MspDeInit 1 */
|
/* USER CODE END TIM4_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();
|
||||||
|
|
||||||
|
/* Peripheral DMA DeInit*/
|
||||||
|
HAL_DMA_DeInit(htim_base->hdma[TIM_DMA_ID_CC2]);
|
||||||
|
|
||||||
|
/* Peripheral interrupt DeInit*/
|
||||||
|
HAL_NVIC_DisableIRQ(TIM5_IRQn);
|
||||||
|
|
||||||
|
/* USER CODE BEGIN TIM5_MspDeInit 1 */
|
||||||
|
|
||||||
|
/* USER CODE END TIM5_MspDeInit 1 */
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -41,8 +41,12 @@
|
|||||||
|
|
||||||
/* External variables --------------------------------------------------------*/
|
/* External variables --------------------------------------------------------*/
|
||||||
extern DMA_HandleTypeDef hdma_tim2_ch1;
|
extern DMA_HandleTypeDef hdma_tim2_ch1;
|
||||||
|
extern DMA_HandleTypeDef hdma_tim4_ch1;
|
||||||
|
extern DMA_HandleTypeDef hdma_tim5_ch2;
|
||||||
extern TIM_HandleTypeDef htim1;
|
extern TIM_HandleTypeDef htim1;
|
||||||
extern TIM_HandleTypeDef htim2;
|
extern TIM_HandleTypeDef htim2;
|
||||||
|
extern TIM_HandleTypeDef htim4;
|
||||||
|
extern TIM_HandleTypeDef htim5;
|
||||||
|
|
||||||
/******************************************************************************/
|
/******************************************************************************/
|
||||||
/* Cortex-M3 Processor Interruption and Exception Handlers */
|
/* Cortex-M3 Processor Interruption and Exception Handlers */
|
||||||
@ -186,6 +190,20 @@ void SysTick_Handler(void)
|
|||||||
/* please refer to the startup file (startup_stm32f1xx.s). */
|
/* please refer to the startup file (startup_stm32f1xx.s). */
|
||||||
/******************************************************************************/
|
/******************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief This function handles DMA1 channel1 global interrupt.
|
||||||
|
*/
|
||||||
|
void DMA1_Channel1_IRQHandler(void)
|
||||||
|
{
|
||||||
|
/* USER CODE BEGIN DMA1_Channel1_IRQn 0 */
|
||||||
|
|
||||||
|
/* USER CODE END DMA1_Channel1_IRQn 0 */
|
||||||
|
HAL_DMA_IRQHandler(&hdma_tim4_ch1);
|
||||||
|
/* USER CODE BEGIN DMA1_Channel1_IRQn 1 */
|
||||||
|
|
||||||
|
/* USER CODE END DMA1_Channel1_IRQn 1 */
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief This function handles DMA1 channel5 global interrupt.
|
* @brief This function handles DMA1 channel5 global interrupt.
|
||||||
*/
|
*/
|
||||||
@ -201,17 +219,17 @@ void DMA1_Channel5_IRQHandler(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief This function handles TIM1 capture compare interrupt.
|
* @brief This function handles TIM1 update interrupt.
|
||||||
*/
|
*/
|
||||||
void TIM1_CC_IRQHandler(void)
|
void TIM1_UP_IRQHandler(void)
|
||||||
{
|
{
|
||||||
/* USER CODE BEGIN TIM1_CC_IRQn 0 */
|
/* USER CODE BEGIN TIM1_UP_IRQn 0 */
|
||||||
|
|
||||||
/* USER CODE END TIM1_CC_IRQn 0 */
|
/* USER CODE END TIM1_UP_IRQn 0 */
|
||||||
HAL_TIM_IRQHandler(&htim1);
|
HAL_TIM_IRQHandler(&htim1);
|
||||||
/* USER CODE BEGIN TIM1_CC_IRQn 1 */
|
/* USER CODE BEGIN TIM1_UP_IRQn 1 */
|
||||||
|
|
||||||
/* USER CODE END TIM1_CC_IRQn 1 */
|
/* USER CODE END TIM1_UP_IRQn 1 */
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -228,6 +246,48 @@ void TIM2_IRQHandler(void)
|
|||||||
/* USER CODE END TIM2_IRQn 1 */
|
/* USER CODE END TIM2_IRQn 1 */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief This function handles TIM4 global interrupt.
|
||||||
|
*/
|
||||||
|
void TIM4_IRQHandler(void)
|
||||||
|
{
|
||||||
|
/* USER CODE BEGIN TIM4_IRQn 0 */
|
||||||
|
|
||||||
|
/* USER CODE END TIM4_IRQn 0 */
|
||||||
|
HAL_TIM_IRQHandler(&htim4);
|
||||||
|
/* USER CODE BEGIN TIM4_IRQn 1 */
|
||||||
|
|
||||||
|
/* USER CODE END TIM4_IRQn 1 */
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief This function handles TIM5 global interrupt.
|
||||||
|
*/
|
||||||
|
void TIM5_IRQHandler(void)
|
||||||
|
{
|
||||||
|
/* USER CODE BEGIN TIM5_IRQn 0 */
|
||||||
|
|
||||||
|
/* USER CODE END TIM5_IRQn 0 */
|
||||||
|
HAL_TIM_IRQHandler(&htim5);
|
||||||
|
/* USER CODE BEGIN TIM5_IRQn 1 */
|
||||||
|
|
||||||
|
/* USER CODE END TIM5_IRQn 1 */
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief This function handles DMA2 channel4 and channel5 global interrupts.
|
||||||
|
*/
|
||||||
|
void DMA2_Channel4_5_IRQHandler(void)
|
||||||
|
{
|
||||||
|
/* USER CODE BEGIN DMA2_Channel4_5_IRQn 0 */
|
||||||
|
|
||||||
|
/* USER CODE END DMA2_Channel4_5_IRQn 0 */
|
||||||
|
HAL_DMA_IRQHandler(&hdma_tim5_ch2);
|
||||||
|
/* USER CODE BEGIN DMA2_Channel4_5_IRQn 1 */
|
||||||
|
|
||||||
|
/* USER CODE END DMA2_Channel4_5_IRQn 1 */
|
||||||
|
}
|
||||||
|
|
||||||
/* USER CODE BEGIN 1 */
|
/* USER CODE BEGIN 1 */
|
||||||
|
|
||||||
/* USER CODE END 1 */
|
/* USER CODE END 1 */
|
||||||
|
Reference in New Issue
Block a user