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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 10646|回復(fù): 10
打印 上一主題 下一主題
收起左側(cè)

stm32電機(jī)速度閉環(huán)控制(代碼詳細(xì)注釋)

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:372737 發(fā)表于 2018-7-27 09:56 | 只看該作者 回帖獎勵 |倒序?yàn)g覽 |閱讀模式
PID 源碼,大家可以看看,討論討論。

單片機(jī)源程序如下:
  1. #include "sys.h"
  2. u8 Flag_Stop=1;            //停止標(biāo)志位
  3. int Encoder;               //編碼器的脈沖計(jì)數(shù)
  4. int Moto1;                 //電機(jī)PWM變量 應(yīng)是Motor的 向Moto致敬       

  5. int main(void)
  6. {
  7.         Stm32_Clock_Init(9);            //系統(tǒng)時鐘設(shè)置
  8.         delay_init(72);                 //延時初始化
  9.         LED_Init();                     //初始化與 LED 連接的硬件接口
  10.         uart_init(72,115200);           //初始化串口1
  11.         MiniBalance_PWM_Init(7199,0);   //=====初始化PWM 10KHZ 高頻可以防止電機(jī)低頻時的尖叫聲
  12.         Encoder_Init_TIM2();            //初始化編碼器
  13.   Timer3_Init(99,7199);           //=====10MS進(jìn)一次中斷服務(wù)函數(shù),中斷服務(wù)函數(shù)在control.c
  14.         while(1)
  15.                 {
  16.                         printf("%d\r\n",Encoder);       
  17.                 }
  18. }
復(fù)制代碼
  1. #include "motor.h"
  2. void MiniBalance_Motor_Init(void)
  3. {
  4.         RCC->APB2ENR|=1<<3;       //PORTB時鐘使能   
  5.         GPIOB->CRH&=0X0000FFFF;   //PORTB12 13 14 15推挽輸出
  6.         GPIOB->CRH|=0X22220000;   //PORTB12 13 14 15推挽輸出
  7. }
  8. void MiniBalance_PWM_Init(u16 arr,u16 psc)
  9. {                                                          
  10.         MiniBalance_Motor_Init();  //初始化電機(jī)控制所需IO
  11.         RCC->APB2ENR|=1<<11;       //使能TIM1時鐘   
  12.         RCC->APB2ENR|=1<<2;        //PORTA時鐘使能     
  13.         GPIOA->CRH&=0XFFFF0FF0;    //PORTA8 11復(fù)用輸出
  14.         GPIOA->CRH|=0X0000B00B;    //PORTA8 11復(fù)用輸出
  15.         TIM1->ARR=arr;             //設(shè)定計(jì)數(shù)器自動重裝值
  16.         TIM1->PSC=psc;             //預(yù)分頻器不分頻
  17.         TIM1->CCMR2|=6<<12;        //CH4 PWM1模式       
  18.         TIM1->CCMR1|=6<<4;         //CH1 PWM1模式       
  19.         TIM1->CCMR2|=1<<11;        //CH4預(yù)裝載使能         
  20.         TIM1->CCMR1|=1<<3;         //CH1預(yù)裝載使能          
  21.         TIM1->CCER|=1<<12;         //CH4輸出使能          
  22.         TIM1->CCER|=1<<0;          //CH1輸出使能       
  23.         TIM1->BDTR |= 1<<15;       //TIM1必須要這句話才能輸出PWM
  24.         TIM1->CR1=0x8000;          //ARPE使能
  25.         TIM1->CR1|=0x01;          //使能定時器1                                                                                           
  26. }

復(fù)制代碼
  1. #include "encoder.h"

  2. /**************************************************************************
  3. 函數(shù)功能:把TIM2初始化為編碼器接口模式
  4. 入口參數(shù):無
  5. 返回  值:無
  6. **************************************************************************/
  7. void Encoder_Init_TIM2(void)
  8. {
  9.         RCC->APB1ENR|=1<<0;     //TIM2時鐘使能
  10.         RCC->APB2ENR|=1<<2;    //使能PORTA時鐘
  11.         GPIOA->CRL&=0XFFFFFF00;//PA0 PA1
  12.         GPIOA->CRL|=0X00000044;//浮空輸入
  13.         /* 把定時器初始化為編碼器模式 */
  14.         TIM2->PSC = 0x0;//預(yù)分頻器
  15.         TIM2->ARR = ENCODER_TIM_PERIOD-1;//設(shè)定計(jì)數(shù)器自動重裝值
  16.   TIM2->CCMR1 |= 1<<0;          //輸入模式,IC1FP1映射到TI1上
  17.   TIM2->CCMR1 |= 1<<8;          //輸入模式,IC2FP2映射到TI2上
  18.   TIM2->CCER |= 0<<1;           //IC1不反向
  19.   TIM2->CCER |= 0<<5;           //IC2不反向
  20.         TIM2->SMCR |= 3<<0;                  //SMS='011' 所有的輸入均在上升沿和下降沿有效
  21.         TIM2->CR1 |= 0x01;    //CEN=1,使能定時器
  22. }
  23. /**************************************************************************
  24. 函數(shù)功能:把TIM4初始化為編碼器接口模式
  25. 入口參數(shù):無
  26. 返回  值:無
  27. **************************************************************************/
  28. void Encoder_Init_TIM4(void)
  29. {
  30.         RCC->APB1ENR|=1<<2;     //TIM4時鐘使能
  31.         RCC->APB2ENR|=1<<3;    //使能PORTb時鐘
  32.         GPIOB->CRL&=0X00FFFFFF;//PB6 PB7
  33.         GPIOB->CRL|=0X44000000;//浮空輸入
  34.         /* 把定時器初始化為編碼器模式 */
  35.         TIM4->PSC = 0x0;//預(yù)分頻器
  36.         TIM4->ARR = ENCODER_TIM_PERIOD-1;//設(shè)定計(jì)數(shù)器自動重裝值
  37.   TIM4->CCMR1 |= 1<<0;          //輸入模式,IC1FP1映射到TI1上
  38.   TIM4->CCMR1 |= 1<<8;          //輸入模式,IC2FP2映射到TI2上
  39.   TIM4->CCER |= 0<<1;           //IC1不反向
  40.   TIM4->CCER |= 0<<5;           //IC2不反向
  41.         TIM4->SMCR |= 3<<0;                  //SMS='011' 所有的輸入均在上升沿和下降沿有效
  42.         TIM4->CR1 |= 0x01;    //CEN=1,使能定時器
  43. }
  44. /**************************************************************************
  45. 函數(shù)功能:單位時間讀取編碼器計(jì)數(shù)
  46. 入口參數(shù):定時器
  47. 返回  值:速度值
  48. **************************************************************************/
  49. int Read_Encoder(u8 TIMX)
  50. {
  51.     int Encoder_TIM;   
  52.    switch(TIMX)
  53.          {
  54.            case 2:  Encoder_TIM= (short)TIM2 -> CNT;  TIM2 -> CNT=0;break;
  55.                  case 3:  Encoder_TIM= (short)TIM3 -> CNT;  TIM3 -> CNT=0;break;       
  56.                  case 4:  Encoder_TIM= (short)TIM4 -> CNT;  TIM4 -> CNT=0;break;       
  57.                  default:  Encoder_TIM=0;
  58.          }
  59.                 return Encoder_TIM;
  60. }


復(fù)制代碼



所有資料51hei提供下載:
電機(jī)速度閉環(huán)控制(代碼詳細(xì)注釋).rar (177.07 KB, 下載次數(shù): 238)


評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏3 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:20672 發(fā)表于 2018-10-2 14:06 | 只看該作者
謝謝分享、、、
回復(fù)

使用道具 舉報(bào)

板凳
ID:470848 發(fā)表于 2019-1-20 13:33 | 只看該作者
很不錯
回復(fù)

使用道具 舉報(bào)

地板
ID:537647 發(fā)表于 2019-5-15 16:20 | 只看該作者
沒看懂。。。
回復(fù)

使用道具 舉報(bào)

5#
ID:540349 發(fā)表于 2019-5-16 23:40 | 只看該作者
謝謝樓主,編程不容易
回復(fù)

使用道具 舉報(bào)

6#
ID:537744 發(fā)表于 2019-5-17 13:57 | 只看該作者
謝謝分享!
回復(fù)

使用道具 舉報(bào)

7#
ID:583076 發(fā)表于 2019-7-25 09:46 | 只看該作者
謝謝樓主分享
回復(fù)

使用道具 舉報(bào)

8#
ID:470428 發(fā)表于 2019-8-5 15:32 | 只看該作者
謝謝分享,下來學(xué)習(xí),感覺講的很詳細(xì)
回復(fù)

使用道具 舉報(bào)

9#
ID:620291 發(fā)表于 2019-10-8 00:06 | 只看該作者

謝謝樓主,編程不容易
回復(fù)

使用道具 舉報(bào)

10#
ID:400671 發(fā)表于 2019-10-8 09:17 | 只看該作者

很不錯
回復(fù)

使用道具 舉報(bào)

11#
ID:783793 發(fā)表于 2020-6-20 11:09 | 只看該作者
感謝分享
回復(fù)

使用道具 舉報(bào)

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

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 不卡一区 | 国产精品揄拍一区二区久久国内亚洲精 | av黄色在线 | 日韩国产免费 | 亚洲精品一| 日韩欧美在 | 成年人黄色一级毛片 | 91久久精品国产91久久性色tv | 自拍偷拍欧美 | 久久成人激情 | 日韩久久久一区二区 | 国产日韩精品一区二区三区 | 国产精品一区二 | 97精品超碰一区二区三区 | 黑人一级黄色大片 | 999视频在线播放 | 日韩av中文 | 在线国产视频 | av片在线免费看 | 久久精品小视频 | 午夜精品一区二区三区在线播放 | 国产丝袜一区二区三区免费视频 | 国产成人综合av | 男人天堂网av | 国产精品不卡一区 | 久久亚洲一区 | 亚洲最新在线视频 | 99精品九九 | 日韩在线观看网站 | 欧美日韩国产在线观看 | 久久久久亚洲精品 | 一级在线观看 | 最新午夜综合福利视频 | 欧美一区二区三区四区五区无卡码 | 成人污污视频 | 欧美日韩高清在线一区 | 国产jizz女人多喷水99 | 999久久久免费精品国产 | 免费性视频 | 中文字幕一二三区 | 欧美自拍第一页 |