芯片解密STM32F103的无刷电机驱动板
芯片解密STM32单片机源程序如下:
- #include "includes.h"
- void Motor_Ctr(void);
- void send_wave_data(u16 send_data)
- {
- usart1_send_byte(0xAA);
- usart1_send_byte(send_data>>8);
- usart1_send_byte(send_data);
- }
- void Motor_start_param_initial()
- {
- MotorCtr.motor_start_delay=MAX_START_DELAY; //电机启动参数初始化,30ms,相当于60000/6/2/30=166圈/分钟
- MotorCtr.start_step_cn=0;
-
- #ifdef NO_HOLZER_SENSOR //无霍尔传感器
-
- MotorCtr.Holzer_sensor=0;
- MotorCtr.No_Holzer_sensor_start_count=0;
- MotorCtr.start_holl_value=2;
- #else //有霍尔传感器
-
- MotorCtr.Holzer_sensor=1;
- MotorCtr.Holzer_sensor_start_count=0;
- #endif
- }
- //电机控制初始化函数
- void MotorCtr_ini(void)
- {
- MotorCtr.sample_ok=0; //电机采样参数初始化
- MotorCtr.motor_voltage=0;
- MotorCtr.motor_current=0;
-
- MotorCtr.speed_val=0; //电机速度参数初始化设定值
- MotorCtr.speed_set=0;
- MotorCtr.speed_time_cnt=0;
- MotorCtr.speed_time_ok=0;
-
- MotorCtr.holl_overtime_cnt=0;
- MotorCtr.holl_cnt=0;
- MotorCtr.sum_holl_time=0;
- MotorCtr.sample_ok_cn=0;
- MotorCtr.stall_time_cn=0;
-
- MotorCtr.motor_dir= NONE_DIR; //电机转动控制初始化,顺时钟
- MotorCtr.motor_run_state = MOTOR_IDLE;
-
- Motor_start_param_initial();
-
-
- MotorCtr.motor_run_state=MOTOR_START;
- MotorCtr.motor_dir= FORWARD_DIR;
- //MotorCtr.motor_dir= REVERSE_DIR;
- TIM_Cmd(TIM4, ENABLE); //使能TIM4,开始计时间
- }
- void MOTOR_CMD_process()
- {
- if(Usart2Data.Usart_Rx_Data_OK)
- {
-
- if(Usart2Data.Usart_Rx_Cmd_H==CMD_ORDER)
- {
- if(Usart2Data.Usart_Rx_Cmd_L&MOTOR_START)
- {
- Motor_start_param_initial();
- MotorCtr.motor_run_state=MOTOR_START;
- if(Usart2Data.Usart_Rx_Cmd_L&FORWARD_DIR)
- {
- MotorCtr.motor_dir= FORWARD_DIR;
- }
- if(Usart2Data.Usart_Rx_Cmd_L&REVERSE_DIR)
- {
- MotorCtr.motor_dir= REVERSE_DIR;
- }
- TIM_Cmd(TIM4, ENABLE); //使能TIM4,开始计时间
-
- }
- else if(Usart2Data.Usart_Rx_Cmd_L&MOTOR_STOP)
- {
- MotorCtr.motor_run_state=MOTOR_STOP;
- stop_motor();
- TIM_Cmd(TIM4, DISABLE); //使能TIM4,开始计时间
- }
- }
- else if(Usart2Data.Usart_Rx_Cmd_H==CMD_DATA_SPEED)
- {
- MotorCtr.pwm_duty_set=Usart2Data.Usart_Rx_Cmd_L*MIN_START_PWM_DUTY/SPEED_DUTY_NUM; //速度档位1-10档
- }
- else if(Usart2Data.Usart_Rx_Cmd_H==CMD_DATA_ANGLE)
- {
-
- }
-
- Usart2Data.Usart_Rx_Data_OK=0;
- }
- }
上一篇:芯片解密STM32蓝牙温控风扇

芯片解密