1.霍尔信号换向该怎么处理,出个根据霍尔信号输出对应的PWM才算正确?
- Data_Hall =0x07&((Data_Hall_A<<2)|(Data_Hall_B<<1)|(Data_Hall_C));
- switch(Data_Hall)
- {
- case 5://UV 0
- HAL_GPIO_WritePin(GPIOA,GPIO_PIN_6,1);
- HAL_GPIO_WritePin(GPIOA,GPIO_PIN_7,1);
- HAL_GPIO_WritePin(GPIOB,GPIO_PIN_0,0);
- __HAL_tiM_SET_COMPARE(&htim2,TIM_CHANNEL_2,500);
- __HAL_TIM_SET_COMPARE(&htim2,TIM_CHANNEL_3,0);
- __HAL_TIM_SET_COMPARE(&htim2,TIM_CHANNEL_4,0);
- break;
- case 4://UW
- HAL_GPIO_WritePin(GPIOA,GPIO_PIN_6,1);
- HAL_GPIO_WritePin(GPIOA,GPIO_PIN_7,0);
- HAL_GPIO_WritePin(GPIOB,GPIO_PIN_0,1);
- __HAL_TIM_SET_COMPARE(&htim2,TIM_CHANNEL_2,500);
- __HAL_TIM_SET_COMPARE(&htim2,TIM_CHANNEL_3,0);
- __HAL_TIM_SET_COMPARE(&htim2,TIM_CHANNEL_4,0);
- break;
- case 6://VW
- HAL_GPIO_WritePin(GPIOA,GPIO_PIN_6,0);
- HAL_GPIO_WritePin(GPIOA,GPIO_PIN_7,1);
- HAL_GPIO_WritePin(GPIOB,GPIO_PIN_0,1);
- __HAL_TIM_SET_COMPARE(&htim2,TIM_CHANNEL_2,0);
- __HAL_TIM_SET_COMPARE(&htim2,TIM_CHANNEL_3,500);
- __HAL_TIM_SET_COMPARE(&htim2,TIM_CHANNEL_4,0);
- break;
- case 2://VU
- HAL_GPIO_WritePin(GPIOA,GPIO_PIN_6,1);
- HAL_GPIO_WritePin(GPIOA,GPIO_PIN_7,1);
- HAL_GPIO_WritePin(GPIOB,GPIO_PIN_0,0);
- __HAL_TIM_SET_COMPARE(&htim2,TIM_CHANNEL_2,0);
- __HAL_TIM_SET_COMPARE(&htim2,TIM_CHANNEL_3,500);
- __HAL_TIM_SET_COMPARE(&htim2,TIM_CHANNEL_4,0);
- break;
- case 3://WU
- HAL_GPIO_WritePin(GPIOA,GPIO_PIN_6,1);
- HAL_GPIO_WritePin(GPIOA,GPIO_PIN_7,0);
- HAL_GPIO_WritePin(GPIOB,GPIO_PIN_0,1);
- __HAL_TIM_SET_COMPARE(&htim2,TIM_CHANNEL_2,0);
- __HAL_TIM_SET_COMPARE(&htim2,TIM_CHANNEL_3,0);
- __HAL_TIM_SET_COMPARE(&htim2,TIM_CHANNEL_4,500);
- break;
- case 1://WV
- HAL_GPIO_WritePin(GPIOA,GPIO_PIN_6,0);
- HAL_GPIO_WritePin(GPIOA,GPIO_PIN_7,1);
- HAL_GPIO_WritePin(GPIOB,GPIO_PIN_0,1);
- __HAL_TIM_SET_COMPARE(&htim2,TIM_CHANNEL_2,0);
- __HAL_TIM_SET_COMPARE(&htim2,TIM_CHANNEL_3,0);
- __HAL_TIM_SET_COMPARE(&htim2,TIM_CHANNEL_4,500);
- break;
-
- default:
- HAL_GPIO_WritePin(GPIOA,GPIO_PIN_6,0);
- HAL_GPIO_WritePin(GPIOA,GPIO_PIN_7,0);
- HAL_GPIO_WritePin(GPIOB,GPIO_PIN_0,0);
-
- break;
启动不了 三个GPIO为EN