/* * dmk.c * * Created on: Jan 14, 2026 * Author: akeguo */ #include "dmk.h" #include "main.h" #include "dma.h" #include "iwdg.h" #include "tim.h" #include "usart.h" #include "gpio.h" uint16_t Is_First_Run = 0; void handle_dmk_motor(uint16_t velocity, int state) { // if (Is_First_Run <= 5) { // HAL_Delay(50); // MB_WriteHoldingReg(1, 0, 4);//设置模式为0 // HAL_Delay(100); // Is_First_Run++;; // return; // } char ms_100_state = HAL_GetTick() / 300 % 3; switch (ms_100_state) { case 1: { MB_WriteHoldingReg(1, 0x06a, velocity); break; } case 2: { if (state == 1) { //正转 MB_WriteHoldingReg(1, 0x033, 0x01); } else if (state == 0) { //stop MB_WriteHoldingReg(1, 0x033, 0x0); } else if (state == 2) { //reverse MB_WriteHoldingReg(1, 0x033, 0x14); } break; } case 0: { MB_WriteHoldingReg(1, 0, 0);//设置模式为0 break; } } //HAL_Delay(80); }