DRV8313驱动直流有感无刷电机程序问题

2019-07-18 15:00发布

1.霍尔信号换向该怎么处理,出个根据霍尔信号输出对应的PWM才算正确?
  1. Data_Hall =0x07&((Data_Hall_A<<2)|(Data_Hall_B<<1)|(Data_Hall_C));
  2.         switch(Data_Hall)
  3.         {
  4.                 case 5://UV 0      
  5.     HAL_GPIO_WritePin(GPIOA,GPIO_PIN_6,1);
  6.                 HAL_GPIO_WritePin(GPIOA,GPIO_PIN_7,1);
  7.                 HAL_GPIO_WritePin(GPIOB,GPIO_PIN_0,0);
  8.                 __HAL_tiM_SET_COMPARE(&htim2,TIM_CHANNEL_2,500);
  9.                 __HAL_TIM_SET_COMPARE(&htim2,TIM_CHANNEL_3,0);
  10.                 __HAL_TIM_SET_COMPARE(&htim2,TIM_CHANNEL_4,0);
  11.                 break;
  12.                 case 4://UW
  13.                 HAL_GPIO_WritePin(GPIOA,GPIO_PIN_6,1);
  14.                 HAL_GPIO_WritePin(GPIOA,GPIO_PIN_7,0);
  15.                 HAL_GPIO_WritePin(GPIOB,GPIO_PIN_0,1);
  16.                 __HAL_TIM_SET_COMPARE(&htim2,TIM_CHANNEL_2,500);
  17.                 __HAL_TIM_SET_COMPARE(&htim2,TIM_CHANNEL_3,0);
  18.                 __HAL_TIM_SET_COMPARE(&htim2,TIM_CHANNEL_4,0);
  19.                 break;
  20.                 case 6://VW
  21.                 HAL_GPIO_WritePin(GPIOA,GPIO_PIN_6,0);
  22.                 HAL_GPIO_WritePin(GPIOA,GPIO_PIN_7,1);
  23.                 HAL_GPIO_WritePin(GPIOB,GPIO_PIN_0,1);
  24.                 __HAL_TIM_SET_COMPARE(&htim2,TIM_CHANNEL_2,0);
  25.                 __HAL_TIM_SET_COMPARE(&htim2,TIM_CHANNEL_3,500);
  26.                 __HAL_TIM_SET_COMPARE(&htim2,TIM_CHANNEL_4,0);
  27.                 break;      
  28.                 case 2://VU
  29.                 HAL_GPIO_WritePin(GPIOA,GPIO_PIN_6,1);
  30.                 HAL_GPIO_WritePin(GPIOA,GPIO_PIN_7,1);
  31.                 HAL_GPIO_WritePin(GPIOB,GPIO_PIN_0,0);
  32.                 __HAL_TIM_SET_COMPARE(&htim2,TIM_CHANNEL_2,0);
  33.                 __HAL_TIM_SET_COMPARE(&htim2,TIM_CHANNEL_3,500);
  34.                 __HAL_TIM_SET_COMPARE(&htim2,TIM_CHANNEL_4,0);      
  35.                 break;               
  36.                 case 3://WU
  37.                 HAL_GPIO_WritePin(GPIOA,GPIO_PIN_6,1);
  38.                 HAL_GPIO_WritePin(GPIOA,GPIO_PIN_7,0);
  39.                 HAL_GPIO_WritePin(GPIOB,GPIO_PIN_0,1);
  40.                 __HAL_TIM_SET_COMPARE(&htim2,TIM_CHANNEL_2,0);
  41.                 __HAL_TIM_SET_COMPARE(&htim2,TIM_CHANNEL_3,0);
  42.                 __HAL_TIM_SET_COMPARE(&htim2,TIM_CHANNEL_4,500);
  43.                 break;
  44.                 case 1://WV
  45.                 HAL_GPIO_WritePin(GPIOA,GPIO_PIN_6,0);
  46.                 HAL_GPIO_WritePin(GPIOA,GPIO_PIN_7,1);
  47.                 HAL_GPIO_WritePin(GPIOB,GPIO_PIN_0,1);
  48.                 __HAL_TIM_SET_COMPARE(&htim2,TIM_CHANNEL_2,0);
  49.                 __HAL_TIM_SET_COMPARE(&htim2,TIM_CHANNEL_3,0);
  50.                 __HAL_TIM_SET_COMPARE(&htim2,TIM_CHANNEL_4,500);
  51.                 break;
  52.                
  53.                 default:
  54.                 HAL_GPIO_WritePin(GPIOA,GPIO_PIN_6,0);
  55.                 HAL_GPIO_WritePin(GPIOA,GPIO_PIN_7,0);
  56.                 HAL_GPIO_WritePin(GPIOB,GPIO_PIN_0,0);
  57.       
  58.                 break;   
复制代码
            

启动不了  三个GPIO为EN
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。