CListery 发表于 2025-11-25 16:40:14

最后一课

CDC串口控制PWM(使用led灯模拟电机)

tmp_16 = atoi(UsbOutBuffer);
      printf_usb("tmp_16: %d\r\n", tmp_16);
      if (tmp_16 < 0)
      {
            // 反转
            PWM4_Duty = -tmp_16;
      }
      else
      {
            // 正转
            PWM4_Duty = tmp_16;
      }
      if (PWM4_Duty > PWM_RELOAD + 1)
      {
            PWM4_Duty = PWM_RELOAD + 1;
      }
      printf_usb("PWM4_Duty: %d\r\n", PWM4_Duty);
      if (PWM4_Duty == 0)
      {
            // 停止
            PWMA_DisablePWM4NOutput();
            PWMA_DisablePWM4POutput();
            P66 = 1;
            P67 = 1;
      }
      else if (tmp_16 > 0)
      {
            // 正转
            PWMA_EnablePWM4POutput();
            PWMA_DisablePWM4NOutput();
            PWMA_CC4PInverted(); // 开发板上led低电平导通
            P67 = 1;
      }
      else if (tmp_16 < 0)
      {
            // 反转
            PWMA_DisablePWM4POutput();
            PWMA_EnablePWM4NOutput();
            PWMA_CC4NInverted(); // 开发板上led低电平导通
            P66 = 1;
      }
      memset(UsbOutBuffer, 0, OutNumber);
页: 1 2 3 4 5 [6]
查看完整版本: 跟着冲哥学习单片机