ST意法半导体
直播中

h1654155275.5753

7年用户 1052经验值
私信 关注
[问答]

如何在STM32F401RE上运行带TIM1的BLDC电机?

/* 重置所有外设,初始化 Flash 接口和 Systick。*/
HAL_Init();
/* 用户代码开始初始化 */
//TimHandle.Instance = TIM1;
HAL_TIMEx_ConfigCommutEvent_IT(&htim1, TIM_TS_NONE, TIM_COMMUTATION_SOFTWARE);
/* 用户代码结束初始化 */
//////////////////////////////////////////////// /////////////////////////////////////
/* 用户代码开始 4 */
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef* htim){
  如果(htim->实例==(TIM2)){
    HAL_GPIO_TogglePin(GPIOA, GPIO_PIN_14);
    HAL_TIM_GenerateEvent(&htim1, TIM_EventSource_COM);
    //计数++;
    //BRG_开关(); //<-此调用有效
    }
  //if(htim->Instance == (TIM1)){pwm++;}
}
void HAL_TIMEx_CommutCallback(TIM_HandleTypeDef *htim1){
  计数++;
  BRG_开关();//<-此调用无效!
}








回帖(1)

张早

2023-1-10 13:45:23
是的,对不起,我找到了答案。这
HAL_TIMEx_ConfigCommutEvent_IT(&htim1, TIM_TS_NONE, TIM_COMMUTATION_SOFTWARE);
必须在 MX_TIM1_Init() 之后;
/* 初始化所有配置的外设 */
MX_GPIO_Init();
MX_TIM1_Init();
MX_ADC1_Init();
MX_TIM2_Init();
/* 用户代码开始 2 */
//TimHandle.Instance = TIM1;
HAL_TIM_Base_Start_IT(&htim2);
HAL_TIM_Base_Start_IT(&htim1);
HAL_TIM_Base_MspInit(&TimHandle);
HAL_TIMEx_ConfigCommutEvent_IT(&htim1, TIM_TS_NONE, TIM_COMMUTATION_SOFTWARE);
  // TIM1->DIER|=TIM_DIER_UIE;
  //TIM1->DIER|=TIM_DIER_COMIE;
  //__HAL_TIM_ENABLE_IT(&htim1, TIM_IT_COM);
举报

更多回帖

发帖
×
20
完善资料,
赚取积分