久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 18617|回復: 33
打印 上一主題 下一主題
收起左側

51單片機STC15W408AS電調程序詳解

  [復制鏈接]
跳轉到指定樓層
樓主
看了大概一個月的程序,基本理解了,根據自己的理解對程序做了詳盡注釋,希望能夠幫助后來者。接下來要學習ppm信號,希望能夠很快對接起來。
電路原理圖如下:


單片機源程序如下:
  1. /***************************功能說明***************************

  2. 本程序試驗使用STC15W408AS來驅動航模用的無感無刷三相直流馬達.

  3. 本程序參考自網上的代碼(作者: 瑞生), 改良而來.

  4. 電路圖見文件 "BLDC-V10-實驗電路.pdf".

  5. 控制信號由P3.2輸入正脈沖信號, 間隔5~20ms, 脈沖寬度1.000~1.610ms.

  6. 1.160ms開始啟動, 1.610ms為最高速度, 分辨率為2us.

  7. 本程序僅僅是簡單控制, 軟件沒有處理過0延時30度切換和過流檢測.

  8. 由于過0檢測部分有RC濾波, 所以改變電容值可以大約的對應在最高速時延時30度的時間.

  9. 有意者可自行完善電路和程序.

  10. *********************************************************************************/

  11. #define MAIN_Fosc                24000000L        //定義主時鐘

  12. #include "STC15Fxxxx.H"

  13. //CMPCR1(比較器控制寄存器 1)
  14. #define        CMPEN        0x80        //1: 允許比較器, 0: 禁止,關閉比較器電源
  15. #define        CMPIF        0x40        //比較器中斷標志, 包括上升沿或下降沿中斷, 軟件清0
  16. #define        PIE                0x20        //1: 比較結果由0變1, 產生上升沿中斷
  17. #define        NIE                0x10        //1: 比較結果由1變0, 產生下降沿中斷
  18. #define        PIS                0x08        //輸入正極性選擇, 0: 選擇外部P5.5做正輸入,           1: 由ADCIS[2:0]所選擇的ADC輸入端做正輸入.
  19. #define        NIS                0x04        //輸入負極性選擇, 0: 選擇內部BandGap電壓BGv做負輸入, 1: 選擇外部P5.4做輸入.
  20. #define        CMPOE        0x02        //1: 允許比較結果輸出到P1.2, 0: 禁止.
  21. #define        CMPRES        0x01        //比較結果, 1: CMP+電平高于CMP-,  0: CMP+電平低于CMP-,  只讀

  22. //CMPCR2(比較器控制寄存器 2)
  23. #define        INVCMPO        0x80        //1: 比較器輸出取反,  0: 不取反
  24. #define        DISFLT        0x40        //1: 關閉0.1us濾波,   0: 允許
  25. #define        LCDTY        0x00        //關閉數字濾波功能. 數字濾波功能即為數字信號去抖動功能.

  26. sbit PWM0_L = P3^4;
  27. sbit PWM1_L = P3^5;
  28. sbit PWM2_L = P3^6;

  29. u8        Step;
  30. u8        PWM_Value; // 決定PWM占空比的值
  31. u16        RxPulseWide;
  32. bit        B_RxOk;    //定義一個bool量.
  33. bit        B_RUN;
  34. u8        PWW_Set;
  35. u8        cnt10ms;
  36. u8        Rx_cnt;
  37. u8        TimeOut;        //堵轉超時

  38. #define DISABLE_CMP_INT CMPCR1 &= ~0X40                // 比較器中斷標志位清0.
  39. #define ENABLE_CMP_INT  CMPCR1 |= 0X40                // 比較器中斷標志位置1.

  40. /*********************************************************************/

  41. void Delay_n_ms(u8 dly)
  42. {
  43.         u16        j;
  44.         do
  45.         {
  46.                 j = MAIN_Fosc / 13000;        //延時1ms, 主程序在此節拍下運行
  47.                 while(--j)        ;
  48.         }
  49.         while(--dly);
  50. }


  51. void delay_us(u8 us)
  52. {
  53.         do
  54.         {
  55.                 NOP(20);        //@24MHz
  56.         }
  57.         while(--us);
  58. }

  59. void StepXL(void) // 換相序列函數
  60. {
  61. switch(Step)
  62.           {
  63.            case 0:  // AB
  64.                                 PWM0_L=0;  PWM1_L = 1;  PWM2_L=0;           // Q4常開.
  65.                                 CCAP0H = PWM_Value;        CCAP1H=0;        CCAP2H=0;        // A相由占空比控制.
  66.                                 ADC_CONTR = 0XCD;        // ADC電源開,ADC轉換開,選擇P1.5作為ADC輸入口
  67.                                 CMPCR1 = 0x9C;                // 比較器使能, 下降沿中斷允許,通過ADC的P1.5口作為比較器的正極輸入端,
  68.                                                                                                                                  //選擇外部端口P5.4作為比較器負極輸入端.
  69.                  break;
  70.            case 1:  // AC
  71.                                 PWM0_L=0;        PWM1_L=0;  PWM2_L = 1;                        // Q4常開
  72.                                 CCAP0H = PWM_Value;        CCAP1H=0;        CCAP2H=0;        // A相由占空比控制.
  73.                                 ADC_CONTR = 0XCC;        // ADC電源開,ADC轉換開,選擇P1.4作為ADC輸入端
  74.                                 CMPCR1 = 0xAC;                // 比較器使能, 上升沿中斷允許,通過ADC的P1.4口作為比較器的正極輸入端
  75.                                                                                                                                  //選擇外部端口P5.4作為比較器負極輸入端.   
  76.                   break;
  77.            case 2:  // BC
  78.                                 PWM0_L=0;        PWM1_L=0;  PWM2_L = 1;                        // Q2常開
  79.                                 CCAP0H=0;        CCAP2H=0;        CCAP1H = PWM_Value; //  B相由占空比控制.                       
  80.                                 ADC_CONTR = 0XCB;   // ADC電源開,ADC轉換開,選擇P1.3作為ADC輸入口測量A點電壓   
  81.                                 CMPCR1 = 0x9C;                // 比較器使能, 下降沿中斷允許,通過ADC的P1.3口作為比較器的正極輸入端
  82.                                                                                                                                  //選擇外部端口P5.4作為比較器負極輸入端.
  83.                   break;
  84.            case 3:  // BA
  85.                                 PWM0_L = 1;  PWM1_L=0;        PWM2_L=0;                        // Q6常開
  86.                                 CCAP0H=0;        CCAP2H=0;        CCAP1H = PWM_Value; // B相由占空比控制.
  87.                                 ADC_CONTR = 0XCD;        // ADC電源開,ADC轉換開,選擇P1.5作為ADC輸入口測量C點電壓  
  88.                                 CMPCR1 = 0xAC;                // 比較器使能, 上升沿中斷允許,通過ADC的P1.5口作為比較器的正極輸入端
  89.                                                                                                                                  //選擇外部端口P5.4作為比較器負極輸入端.                       
  90.                   break;
  91.            case 4:  // CA
  92.                                 PWM0_L = 1;        PWM1_L=0;        PWM2_L=0;                    // Q6常開
  93.                                 CCAP0H=0;        CCAP1H=0;        CCAP2H = PWM_Value; // C相由占空比控制.
  94.                                 ADC_CONTR = 0XCC;        // ADC電源開,ADC轉換開,選擇P1.4作為ADC輸入口測量B點電壓
  95.                                 CMPCR1 = 0x9C;                // 比較器使能, 下降沿中斷允許,通過ADC的P1.4口作為比較器的正極輸入端
  96.                                                                                                                                  //選擇外部端口P5.4作為比較器負極輸入端.
  97.                   break;
  98.            case 5: // CB
  99.                                 PWM0_L=0;        PWM2_L=0;  PWM1_L = 1;                        // Q4常開
  100.                                 CCAP0H=0;        CCAP1H=0;        CCAP2H = PWM_Value; // C相由占空比控制.                     
  101.                                 ADC_CONTR = 0XCB;        // ADC電源開,ADC轉換開,選擇P1.3作為ADC輸入口測量A點電壓  
  102.                                 CMPCR1 = 0xAC;                // 比較器使能, 上升沿中斷允許,通過ADC的P1.3口作為比較器的正極輸入端
  103.                                                                                                                                  //選擇外部端口P5.4作為比較器負極輸入端.       
  104.                   break;
  105.            default:
  106.                   break;
  107.           }       
  108. }

  109. /***************************************************************
  110. *                      PCA模塊PWM輸出設置                      *
  111. ***************************************************************/
  112. void PWM_Init(void)
  113. {
  114.         PWM0_L = 0;     // 初始化P3^4為低電平.sbit PWM0_L = P3^4;
  115.         PWM1_L = 0;     // 初始化P3^5為低電平.sbit PWM1_L = P3^5;
  116.         PWM2_L = 0;     // 初始化P3^6為低電平.sbit PWM2_L = P3^6;
  117.        
  118.         P3n_push_pull(0x70);    // 設置P3.4/3.5、3.6為推挽輸出.  P3M1 &= ~(bitn),        P3M0 |=  (bitn)
  119.          
  120.         CMOD = 5 << 1;  //5(0101)左移1位,設置PCA的輸入時鐘源為系統時鐘的1/4,即PWM頻率=24M/4.

  121.         CH=0;                     // PCA(Programmable Counter Array)清零
  122.         CL=0;            //  
  123.        
  124.         PCA_PWM0 = 0X00; // 對PCA_PWM0模塊0清0,并設置PWM為8位(EBS0[1:0]=00).
  125.         CCAP0H = 0x00;   // 重載值為{EPCnH,CCAPnH[7:0]}.
  126.         CCAP0L = 0x00;   // 比較值為{EPCnL,CCAPnL[7:0]}.
  127.         CCAPM0 = 0x42;         // 設置PCA模塊0的控制模式(0100 0010).ECOM0=1,允許PCA模塊0的比較功能.
  128.                          // PWM0=1,設置PCA模塊0為脈寬調制輸出功能.
  129.                          // 當PCA 模塊工作在8位PWM模式時,{0,CL[7:0]}與{EPCnL,CCAPnL[7:0]}
  130.                      // 中的值進行比較,小于,輸出低電平,大于等于輸出高電平.       
  131.         PCA_PWM1 = 0X00; // 對PCA_PWM0模塊0清0,并設置PWM為8位(EBS0[1:0]=00).
  132.         CCAP1H = 0x00;   // 重載值為{EPCnH,CCAPnH[7:0]}.
  133.         CCAP1L = 0x00;   // 比較值為{EPCnL,CCAPnL[7:0]}.
  134.         CCAPM1 = 0x42;         // 設置PCA模塊1的控制模式(0100 0010).ECOM0=1,允許PCA模塊1的比較功能.
  135.                          // PWM1=1,設置PCA模塊1為脈寬調制輸出功能.
  136.                          // 當PCA 模塊工作在8位PWM模式時,{0,CL[7:0]}與{EPCnL,CCAPnL[7:0]}
  137.                      // 中的值進行比較,小于,輸出低電平,大于等于輸出高電平.                                                 
  138.         PCA_PWM2 = 0X00; // 對PCA_PWM2模塊進行設置.其中,EBS2[1:0]=00,PWM為8位.
  139.         CCAP2H = 0x00;   // 重載值為{EPCnH,CCAPnH[7:0]}.
  140.         CCAP2L = 0x00;   // 比較值為{EPCnL,CCAPnL[7:0]}.
  141.         CCAPM2 = 0x42;         // 設置PCA模塊2的控制模式(0100 0010).ECOM0=1,允許PCA模塊2的比較功能.
  142.                          // PWM2=1,設置PCA模塊2為脈寬調制輸出功能.
  143.                          // 當PCA 模塊工作在8位PWM模式時,{0,CL[7:0]}與{EPCnL,CCAPnL[7:0]}
  144.                      // 中的值進行比較,小于,輸出低電平,大于等于輸出高電平.                                         
  145.         CR = 1;          // PCA計數允許控制位,1:啟動PCA計數.
  146. }

  147. void ADC_Init(void)
  148. {
  149.         P1n_pure_input(0x38);  // 設置P1.3/1.4/1.5口為高阻輸入(電流既不能流入也不能流出).P1M1 |=  (bitn),        P1M0 &= ~(bitn)
  150.         P1ASF = 0X38;          // 開通P1.3 P1.4 P1.5的AD輸入口(0011 1000)
  151. }

  152. /***************************************************************
  153. *                      比較器中斷服務函數                      *
  154. ***************************************************************/

  155. void CMP_INT(void) interrupt 21
  156. {
  157.         CMPCR1 &= ~0X40;       // 軟件清除中斷標志位
  158.         if(Step<5)        Step++;
  159.         else                Step = 0;
  160.         StepXL();              // 進入換相程序. 在換相程序中,已經對比較器的正負極輸入端做了設置.
  161.                                // ADC的P1.4/P1.5/P1.6口作為比較器的正極輸入端,選擇外部端口P5.4作為比較器負極輸入端.                                                                                                                                           
  162.         TimeOut = 10;               // 在執行完比較器中斷函數后,賦值TimeOut=10.
  163. }

  164. /***************************************************************
  165. *                      比較器初始化設置                        *
  166. ***************************************************************/
  167. void CMP_Init(void)
  168. {
  169.         CMPCR1 = 0X8C;        // 1000 1100 比較器使能,比較器正負極輸入端設置, 通過ADC_CHS位選擇比較器的正極輸入端,選擇P5.4作為負極.
  170.         CMPCR2 = 60;        // 60個時鐘濾波
  171.         P5n_pure_input(0x10);  // 設置P5.4口為高阻輸入(電流既不能流入也不能流出).P5M1 |=  (bitn),        P5M0 &= ~(bitn)
  172. }

  173. /***************************************************************
  174. *                         電機啟動函數                         *
  175. ***************************************************************/
  176.     u8 StartMotor(void)
  177. {
  178.         u16 timer,i;
  179.         DISABLE_CMP_INT;        // 比較器中斷標志位清0,不產生比較中斷.
  180.         PWM_Value = 30;                // 設置占空比初值
  181.         Step = 0;
  182.         StepXL();                        // ∵step=0, ∴ 進入AB相導通的初始位置
  183.         Delay_n_ms(5);      // 延時5ms
  184.         timer = 300;

  185.         while(1)
  186.         {
  187.                 for(i=0; i<timer; i++)        delay_us(50);  
  188.                 timer -= timer /15 + 1;
  189.                 if(timer < 25)        return(1);
  190.                 if( Step < 5)        Step++;
  191.                 else                        Step = 0;
  192.                 StepXL();
  193.         }
  194. }

  195. /***************************************************************
  196. *                      定時器T0初始化函數                      *
  197. ***************************************************************/
  198. void T0_Init(void)      // 這里設置TH0/TL0=0,定時器T0為16位不自動重載,
  199. {
  200.         Timer0_AsTimer();        // 設置定時器T0用做定時器. TMOD &= ~(1<<2)       
  201.         Timer0_12T();                // 定時器0 12分頻. AUXR &= ~(1<<7)
  202.         Timer0_16bit();     // 定時器0 16位不自動重載模式. TMOD  = (TMOD & ~0x03) | 0x01   
  203.         Timer0_Gate_INT0_P32();        // T0_GATE置1, 只有在INT0腳為高及TR0=1時才可啟動定時器T0.TMOD |=  (1<<3).
  204.         TH0 = 0;
  205.         TL0 = 0;
  206.         TR0 = 1; // 定時器 T0 準備工作.
  207.         ET0 = 1; // 定時器 T0 的溢出中斷允許位.
  208. }

  209. /***************************************************************
  210. *                      定時器T0中斷服務函數                    *
  211. ***************************************************************/
  212. void T0_Interrupt(void) interrupt 1
  213. {
  214.         Rx_cnt = 0;                        // 一旦出現溢出, 則開始的n個脈沖無效
  215.         RxPulseWide = 1000;        // 停止
  216.         B_RxOk = 1;                        // 在執行完T0中斷服務函數后,給B_RxOk賦值.
  217. }

  218. /***************************************************************
  219. *                INT0(外部中斷0)中斷服務函數                 *
  220. ***************************************************************/
  221. void INT0_int (void) interrupt 0
  222. {
  223.         u16        j;       
  224.         TR0 = 0;
  225.         TH0 = 0;
  226.         TL0 = 0;
  227.         j = ((u16)TH0 << 8) + TL0;
  228.         TR0 = 1;   // 定時器T0的運行控制位,允許T0計數, 這時候TH0、TL0就開始計數了.

  229.         if(++Rx_cnt >= 5)        Rx_cnt = 5;
  230.         j >>= 1;        //為了好處理, 轉成單位為us.
  231.         if((j >= 800) && (j <= 2000) && (Rx_cnt == 5))
  232.         {
  233.                 RxPulseWide = j;
  234.                 B_RxOk = 1;                //標志收到一個脈沖
  235.         }
  236. }


  237. /**********************************************/
  238. void main(void)
  239. {
  240.         u16 j;     // unsigned int.

  241.         PWM_Init(); // 設置P3.4/3.5、3.6為推挽輸出. 當PCA 模塊工作在8位PWM模式時,{0,CL[7:0]}與{EPCnL,CCAPnL[7:0]}
  242.                 // 中的值進行比較并決定輸出高電平還是低電平.此電平作為
  243.         ADC_Init(); // 開通P1.3 P1.4 P1.5的AD輸入口.√
  244.         CMP_Init(); // 比較器初始化設置. 對比較器正負極輸入端進行設置, 通過ADC_CHS位選擇比較器的正極輸入端,選擇P5.4作為負極.
  245.         T0_Init();  // 定時器T0初始化設置, 定時器0 12分頻. (AUXR &= ~(1<<7)).

  246.         IE0 = 0;        // 外部中斷0(INT0/P3.2)中斷請求標志位清零.
  247.         EX0 = 1;        // 外部中斷0(INT0)中斷允許.
  248.         IT0 = 1;        // 外部中斷0(INT0)為下降沿觸發.
  249.        
  250.         RxPulseWide = 1000;
  251.         PWW_Set = 0;
  252.         cnt10ms = 0;
  253.         Rx_cnt  = 0;
  254.         TimeOut = 0;

  255.         EA  = 1;            // 打開總中斷
  256.        
  257.         while (1)
  258.         {
  259.                 Delay_n_ms(1);        // 延時1ms, 主程序在此節拍下運行
  260.                 if(TimeOut > 0) // 在執行完比較器中斷函數后,進入此模塊.
  261.                 {
  262.                         if(--TimeOut == 0)            
  263.                         {
  264.                                 CCAP0H=0;        CCAP1H=0;        CCAP2H=0;  // PCA模塊復原.
  265.                                 PWM0_L=0;        PWM1_L=0;        PWM2_L=0;  // P3.4/3.5、3.6腳復原.
  266.                                 DISABLE_CMP_INT;    // 關比較器中斷
  267.                                 Delay_n_ms(250);        // 堵轉時,延時1秒再啟動
  268.                                 Delay_n_ms(250);
  269.                                 Delay_n_ms(250);
  270.                                 Delay_n_ms(250);

  271.                                 RxPulseWide = 1000;
  272.                                 PWW_Set   = 0;
  273.                                 PWM_Value = 0;
  274.                                 B_RxOk = 0;
  275.                                 B_RUN  = 0;
  276.                                 Rx_cnt = 0;
  277.                                 TimeOut = 0;
  278.                         }
  279.                 }
  280.                
  281.                 if(B_RxOk)          // 在執行完T0中斷服務函數后,執行此模塊.
  282.                 {
  283.                         B_RxOk = 0;
  284.                         j = RxPulseWide;
  285.                         if(j >= 1100)                                // 1100~1610對應PWM占空比值0~255
  286.                         {
  287.                                 j = (j - 1100) >> 1;        //2us對應PWM一個步進
  288.                                 if(j > 256)        j = 255;
  289.                         }
  290.                         else        j = 0;
  291.                         PWW_Set = (u8)j;   
  292.                 }
  293.                
  294.                 if(!B_RUN && (PWW_Set >= 30))                // PWM_Set >= 30, 并且馬達未運行, 則啟動馬達
  295.                 {
  296.                         StartMotor();         // 啟動馬達
  297.                         CMPCR1 &= ~0X40; // 比較器中斷請求標志位清零
  298.                         ENABLE_CMP_INT;  // 打開比較器中斷
  299.                         B_RUN = 1;       // B_RUN只是一個標志位,便于管理
  300.                         TimeOut = 0;
  301.                 }
  302.                
  303.                
  304.                 if(++cnt10ms >= 10)                      // 10ms時隙
  305.                 {
  306.                         cnt10ms = 0;
  307.                         if(B_RUN)
  308.                         {
  309.                                 if(PWM_Value < PWW_Set)        PWM_Value++;
  310.                                 if(PWM_Value > PWW_Set)        PWM_Value--;
  311.                                 if(PWM_Value < 20)       
  312.                                 {
  313.                                         PWM_Value = 0;
  314.                                         B_RUN = 0;
  315.                                         CCAP0H=0;        CCAP1H=0;        CCAP2H=0;  // 占空比為0
  316.                                         PWM0_L=0;        PWM1_L=0;        PWM2_L=0;
  317.                                         DISABLE_CMP_INT; // 關比較器中斷
  318.                                 }
  319.                         }
  320.                 }
  321.        
  322.         }
  323. }
復制代碼

上圖Keil代碼下載:
51-STC15W408AS-電調.rar (111.84 KB, 下載次數: 436)

評分

參與人數 2黑幣 +130 收起 理由
lyxxzrb + 30 贊一個!
admin + 100 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏55 分享淘帖 頂9 踩
回復

使用道具 舉報

沙發
ID:852236 發表于 2021-12-12 18:35 | 只看該作者
有做出PCB板試過了嗎?我正想做一個
回復

使用道具 舉報

板凳
ID:198286 發表于 2022-1-3 10:59 | 只看該作者
樓主太有心了,寫的這么詳細,對學習很有用
回復

使用道具 舉報

地板
ID:661945 發表于 2022-1-6 09:24 | 只看該作者
注釋得比較詳細,對初學者還是很有幫助的~~~
回復

使用道具 舉報

5#
ID:371546 發表于 2022-1-14 16:38 | 只看該作者

注釋得比較詳細,對初學者還是很有幫助的~~~
回復

使用道具 舉報

6#
ID:491875 發表于 2022-1-14 19:30 | 只看該作者
謝謝,樓主費心了。
回復

使用道具 舉報

7#
ID:989951 發表于 2022-2-8 08:08 | 只看該作者
好用心的樓主,代碼規范注釋詳細,支持一下
回復

使用道具 舉報

8#
ID:145887 發表于 2022-3-11 10:56 | 只看該作者
注釋得比較詳細,對初學者還是很有幫助
回復

使用道具 舉報

9#
ID:689229 發表于 2022-3-14 18:39 | 只看該作者
謝謝老兄,正在尋找呢。
回復

使用道具 舉報

10#
ID:430492 發表于 2022-3-16 11:22 | 只看該作者
注釋得比較詳細
回復

使用道具 舉報

11#
ID:210365 發表于 2022-4-18 19:42 | 只看該作者
非常詳細的代碼,值得研究
回復

使用道具 舉報

12#
ID:685462 發表于 2022-4-23 12:59 | 只看該作者
樓主,有刷電調的有研究嗎。
回復

使用道具 舉報

13#
ID:85508 發表于 2022-6-19 23:54 | 只看該作者
注釋詳細,還有電路圖和H文件,以后可以做一個,收藏了!
回復

使用道具 舉報

14#
ID:1001745 發表于 2022-6-23 07:59 | 只看該作者
樓主有心了,請問這個可以修改成直接用VR電平去進行調速嗎?
回復

使用道具 舉報

15#
ID:966468 發表于 2022-6-23 09:20 | 只看該作者
樓主太有心了,寫的這么詳細,對學習很有用
回復

使用道具 舉報

16#
ID:156220 發表于 2022-6-28 09:13 | 只看該作者
注釋得比較詳細,謝謝樓主的資料,辛苦了
回復

使用道具 舉報

17#
ID:661945 發表于 2022-6-28 09:44 | 只看該作者
這程序驗證過了的吧?
回復

使用道具 舉報

18#
ID:1037819 發表于 2022-6-30 22:02 | 只看該作者
注釋的很詳細
回復

使用道具 舉報

19#
ID:102665 發表于 2022-7-1 10:38 | 只看該作者
很詳細,點贊
回復

使用道具 舉報

20#
ID:1039586 發表于 2022-8-5 12:26 | 只看該作者
是什么電調呀
回復

使用道具 舉報

21#
ID:1034262 發表于 2022-8-12 15:08 | 只看該作者
STC公司的例程簡單明了,對學習非常有幫助。
特別是STC公司的四軸飛控,簡單、有效、穩定,最簡的飛控,沒有之一。
回復

使用道具 舉報

22#
ID:215147 發表于 2022-10-10 14:29 | 只看該作者
很詳細,點贊
回復

使用道具 舉報

23#
ID:321981 發表于 2022-11-5 12:58 | 只看該作者
實測  這個電調芯片有缺陷,占空比0時 礽有輸出,比校器關閉中斷無效,造成電機啟動時有卡頓或失敗
回復

使用道具 舉報

24#
ID:1050760 發表于 2022-11-24 08:15 | 只看該作者
你好,一直沒看懂你圖紙上P54與P13、P14、P15的運行原理,電機在AB通電時,C上有怎樣的變化嗎?沒搞懂!
回復

使用道具 舉報

25#
ID:170318 發表于 2022-11-24 09:23 | 只看該作者
wh198156 發表于 2022-11-24 08:15
你好,一直沒看懂你圖紙上P54與P13、P14、P15的運行原理,電機在AB通電時,C上有怎樣的變化嗎?沒搞懂!

“P54與P13、P14、P15”等組成了無霍爾反電動勢檢測電路,用于無霍爾位置傳感器電機的
回復

使用道具 舉報

26#
ID:1055358 發表于 2022-12-3 13:00 | 只看該作者
這個電路做好了速度也上不來
回復

使用道具 舉報

27#
ID:197696 發表于 2023-3-6 22:48 | 只看該作者

樓主太有心了,寫的這么詳細,對學習很有用
回復

使用道具 舉報

28#
ID:598932 發表于 2023-6-8 13:18 | 只看該作者
給源碼 給力 我覺得論壇交流就應該這樣
回復

使用道具 舉報

29#
ID:55349 發表于 2023-8-6 16:44 | 只看該作者
點贊,我也學習一下,謝謝先
回復

使用道具 舉報

30#
ID:606110 發表于 2023-8-13 11:44 | 只看該作者
謝謝樓主,我正要做筋膜槍,參考下這個。STC芯片有點貴,我準備找一個平宜的單片機,把這個軟件移稙進去,還要增加檢MOS管電流的。
回復

使用道具 舉報

31#
ID:13396 發表于 2023-9-12 19:30 | 只看該作者
寫的這么詳細,對學習很有用謝謝.
回復

使用道具 舉報

32#
ID:1093267 發表于 2023-9-20 09:24 | 只看該作者
樓主辛苦 感謝分享 學習了!!!!
回復

使用道具 舉報

33#
ID:675767 發表于 2023-12-30 11:48 | 只看該作者
這個對初學者和入門都太友好了
回復

使用道具 舉報

34#
ID:233182 發表于 2024-2-11 01:30 | 只看該作者
NICE,GOOD...
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产日韩久久 | 国产精品免费在线 | 国产午夜久久久 | 亚洲狠狠丁香婷婷综合久久久 | 91视频一区 | 日韩精品免费视频 | 丁香综合| 一级做a | 日本一区二区不卡视频 | 国产精品久久久久久久久久久久久久 | 中文字幕免费视频 | 欧美日韩在线免费观看 | 日韩色图在线观看 | 免费一区 | 欧美中文字幕一区二区三区亚洲 | 国产精品久久久久久久7电影 | 国产亚洲精品久久久久久豆腐 | 国产精品毛片一区二区在线看 | 精品乱码一区二区三四区视频 | 国产激情一区二区三区 | 伊人网综合| 国产美女自拍视频 | 五月天综合影院 | 亚洲va国产日韩欧美精品色婷婷 | 青青草在线视频免费观看 | 久久久精| 精品国产亚洲一区二区三区大结局 | 日本一区精品 | 欧美一级淫片免费视频黄 | 亚洲免费视频一区二区 | 国产96色在线 | 婷婷丁香激情 | 中文字幕乱码一区二区三区 | 欧美一区二区三区在线观看 | 在线视频中文字幕 | 亚洲精品自在在线观看 | 国产精品永久久久久久久www | 久久久久一区二区三区 | 精品久久久久国产免费第一页 | 3p视频在线观看 | 亚洲精品一区二区三区四区高清 |