电机控制
直播中

潘致堂

6年用户 5经验值
擅长:可编程逻辑 嵌入式技术 处理器/DSP 接口/总线/驱动 控制/MCU
私信 关注
[问答]

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

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

回帖(2)

24不可说

2018-8-16 08:25:07
帮你推荐帖子
举报

jiciwi

2018-8-27 08:54:00
这个只是简单的6相换向吧
举报

更多回帖

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