Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- TIM_HandleTypeDef htim2;
- void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *phtim){
- if(phtim->Instance == TIM2){
- //do something
- }
- }
- void TIM2_IRQHandler(){
- HAL_TIM_IRQHandler(&htim2);
- }
- void HAL_TIM_Base_MspInit(TIM_HandleTypeDef *phtim){
- if(phtim->Instance == TIM2){
- __HAL_RCC_TIM2_CLK_ENABLE();
- HAL_NVIC_SetPriority(TIM2_IRQn, 2, 0);
- HAL_NVIC_EnableIRQ(TIM2_IRQn);
- }
- }
- void HAL_TIM_PWM_MspInit(TIM_HandleTypeDef *phtim){
- if(phtim->Instance == TIM2){
- __HAL_RCC_TIM2_CLK_ENABLE();
- }
- }
- void tim2_init_interrupt(unsigned short autoreload, unsigned short prescaler){
- htim2.Instance = TIM2;
- htim2.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
- htim2.Init.CounterMode = TIM_COUNTERMODE_UP;
- htim2.Init.Period = autoreload;
- htim2.Init.Prescaler = prescaler;
- HAL_TIM_Base_Init(&htim2);
- }
- void tim2_init_pwm_ch4(unsigned short autoreload, unsigned short prescaler){
- GPIO_InitTypeDef gpio;
- TIM_OC_InitTypeDef timoc;
- htim2.Instance = TIM2;
- htim2.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
- htim2.Init.CounterMode = TIM_COUNTERMODE_UP;
- htim2.Init.Period = autoreload;
- htim2.Init.Prescaler = prescaler;
- HAL_TIM_PWM_Init(&htim2);
- timoc.OCMode = TIM_OCMODE_PWM1;
- timoc.Pulse = autoreload / 2;
- timoc.OCPolarity = TIM_OCPOLARITY_LOW;
- gpio.Mode = GPIO_MODE_AF_PP;
- gpio.Pull = GPIO_PULLUP;
- gpio.Speed = GPIO_SPEED_HIGH;
- gpio.Alternate = GPIO_AF1_TIM2;
- gpio.Pin = GPIO_PIN_11;
- HAL_GPIO_Init(GPIOB, &gpio);
- HAL_TIM_PWM_ConfigChannel(&htim2, &timoc, TIM_CHANNEL_4);
- }
- void tim2_pwmch4_setcompare(unsigned short cmpval){
- htim2.Instance->CCR4 = cmpval;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement