找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

STM32簡易直流電機速度環(huán)PID閉環(huán)控制源碼

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:263862 發(fā)表于 2017-12-19 19:16 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式

基于STM32開發(fā)簡易運動控制卡
開發(fā)者:JasonLin
STM32定時器功能介紹
  
定時器
  
  
計數(shù)分辨率
  
  
計數(shù)類型
  
  
預(yù)分頻系數(shù)
  
  
DMA請求
  
  
捕獲/比較通道
  
  
編碼器
  
接口
  
  
PWM
  
生成
  
  
TIM1
  
  
16
  
  
up/down
  
/both
  
  
1-65536
  
  
yes
  
  
4
  
  
yes
  
  
yes
  
  
TIM8
  
  
16
  
  
up/down
  
/both
  
  
1-65536
  
  
yes
  
  
4
  
  
yes
  
  
yes
  
  
TIM2
  
  
16
  
  
up/down
  
/both
  
  
1-65536
  
  
yes
  
  
4
  
  
yes
  
  
yes
  
  
TIM3
  
  
16
  
  
up/down/
  
both
  
  
1-65536
  
  
yes
  
  
4
  
  
yes
  
  
yes
  
  
TIM4
  
  
16
  
  
up/down
  
/both
  
  
1-65536
  
  
yes
  
  
4
  
  
yes
  
  
yes
  
  
TIM5
  
  
16
  
  
up/down
  
/both
  
  
1-65536
  
  
yes
  
  
4
  
  
yes
  
  
yes
  
  
TIM6
  
  
16
  
  
up
  
  
1-65536
  
  
yes
  
  
0
  
  
no
  
  
no
  
  
TIM7
  
  
16
  
  
up
  
  
1-65536
  
  
yes
  
  
0
  
  
no
  
  
no
  
TIM1TIM8為高級定時器
TIM6TIM7為基本定時器
TIM2、TIM3TIM4TIM5為通用定時器
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
STM32定時器的通道/引腳分配
  
定時器
  
  
TIM1
  
  
TIM2
  
  
TIM3
  
  
TIM4
  
  
TIM5
  
  
TIM8
  
  
CH1引腳
  
  
PA8
  
  
PA0
  
  
PA6
  
  
PB6
  
  
PA0
  
  
PC6
  
  
CH2引腳
  
  
PA9
  
  
PA1
  
  
PA7
  
  
PB7
  
  
PA1
  
  
PC7
  
  
CH3引腳
  
  
PA10
  
  
PA2
  
  
PB0
  
  
PB8
  
  
PA2
  
  
PC8
  
  
CH4引腳
  
  
PA11
  
  
PA3
  
  
PB1
  
  
PB9
  
  
PA3
  
  
PC9
  
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
STM32定時器的通道/引腳重映射
file:///Z:\TEMP\msohtmlclip1\01\clip_image002.jpg
file:///Z:\TEMP\msohtmlclip1\01\clip_image004.jpg
file:///Z:\TEMP\msohtmlclip1\01\clip_image006.jpg
file:///Z:\TEMP\msohtmlclip1\01\clip_image008.jpg
file:///Z:\TEMP\msohtmlclip1\01\clip_image010.jpg
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
TIM1TIM8定時器的功能包括:
16位向上、向下、向上/下自動裝載計數(shù)器
16位可編程(可以實時修改)預(yù)分頻器,計數(shù)器時鐘頻率的分頻系數(shù)為165535之間的任意數(shù)值
4個獨立通道: 輸入捕獲 輸出比較 PWM生成(邊緣或中間對齊模式) 單脈沖模式輸出  
死區(qū)時間可編程的互補輸出
使用外部信號控制定時器和定時器互聯(lián)的同步電路  
允許在指定數(shù)目的計數(shù)器周期之后更新定時器寄存器的重復(fù)計數(shù)器  
剎車輸入信號可以將定時器輸出信號置于復(fù)位狀態(tài)或者一個已知狀態(tài)
如下事件發(fā)生時產(chǎn)生中斷/DMA 更新:計數(shù)器向上溢出/向下溢出,計數(shù)器初始化(通過軟件或者內(nèi)部/外部觸發(fā)) 觸發(fā)事件(計數(shù)器啟動、停止、初始化或者由內(nèi)部/外部觸發(fā)計數(shù)) 輸入捕獲 輸出比較 剎車信號輸入  
支持針對定位的增量(正交)編碼器和霍爾傳感器電路  
觸發(fā)輸入作為外部時鐘或者按周期的電流管理
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
TIM2TIM3、TIM4TIM5定時器功能包括:  
● 16
位向上、向下、向上/向下自動裝載計數(shù)器  
● 16位可編程(可以實時修改)預(yù)分頻器,計數(shù)器時鐘頻率的分頻系數(shù)為165536之間的任意數(shù)值  
● 4個獨立通道:輸入捕獲輸出比較 ─ PWM生成(邊緣或中間對齊模式)─ 單脈沖模式輸出  
使用外部信號控制定時器和定時器互連的同步電路  
如下事件發(fā)生時產(chǎn)生中斷/DMA更新:計數(shù)器向上溢出/向下溢出,計數(shù)器初始化(通過軟件或者內(nèi)部/外部觸發(fā)) ─ 觸發(fā)事件(計數(shù)器啟動、停止、初始化或者由內(nèi)部/外部觸發(fā)計數(shù)) ─ 輸入捕獲輸出比較  
支持針對定位的增量(正交)編碼器和霍爾傳感器電路  
觸發(fā)輸入作為外部時鐘或者按周期的電流管理 165536之間的任意數(shù)值  
使用外部信號控制定時器和定時器互連的同步電路  
觸發(fā)輸入作為外部時鐘或者按周期的電流管理
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
TIM6TIM7定時器的主要功能包括:   
● 16位自動重裝載累加計數(shù)器  
● 16位可編程(可實時修改)預(yù)分頻器,用于對輸入的時鐘按系數(shù)為165536之間的任意數(shù)值分頻  
觸發(fā)DAC的同步電路   :此項是TIM6/7獨有功能
在更新事件(計數(shù)器溢出)時產(chǎn)生中斷/DMA請求
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
開發(fā)目標(biāo)1TIM14個通道生成PWM,CH1PWM1  CH2PWM2  
                                     CH3PWM3  CH4PWM4
           TIM84個通道生成PWMCH1PWM5  CH2PWM6  
                                      CH3PWM7  CH4PWM8
注:PWM1PWM2 為一組,控制直流減速電機1
PWM3PWM4 為一組,控制直流減速電機2
PWM5PWM6 為一組,控制直流減速電機3
PWM7PWM8 為一組,控制直流減速電機4
PWM1、PWM3、PWM5、PWM7作為電機正向脈沖輸出,占空比為萬分比)
PWM2PWM4、PWM6、PWM8作為電機反向脈沖輸出,占空比為萬分比)
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
開發(fā)目標(biāo)2TIM7作為定時器中斷,產(chǎn)生固定的時間間隔,便于計算電機及落地碼盤的速度(單位時間間隔脈沖增量)
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
開發(fā)目標(biāo)3TIM2、TIM3TIM4、TIM5作為編碼器接口,讀取編碼器的旋轉(zhuǎn)產(chǎn)生的脈沖數(shù)
TIM2CH1作為編碼器1A相的輸入,CH2作為編碼器1B相的輸入
TIM3CH1作為編碼器2A相的輸入,CH2作為編碼器2B相的輸入
TIM4CH1作為編碼器3A相的輸入,CH2作為編碼器3B相的輸入
TIM5CH1作為編碼器4A相的輸入,CH2作為編碼器4B相的輸入
(由于TIM2TIM5CH1CH2共用引腳PA0PA1,所以需要把TIM2
CH1CH2重映射到引腳PA15PB3)
(PA15PB3JTAG接口中的兩只引腳 ,重映射前先把JTAG口關(guān)閉
GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable, ENABLE)//關(guān)閉JTAG
GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable, DISABLE)//打開JTAG
GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable ,ENABLE);//關(guān)閉JTAG
同時打開SWD
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
開發(fā)目標(biāo)42.3TFT液晶顯示屏顯示電機或碼盤的速度(單位時間間隔的脈沖增量)和碼盤脈沖總數(shù)
未完待續(xù)、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、

電機轉(zhuǎn)速控制
單片機源程序如下:
  1. /***********************************************************************************
  2. Author     :JasonLin
  3. version           :V1.1
  4. Date       :2014/8/2
  5. Description:Based on the STM32 Micro Control Unit design simple movement controller  
  6. ************************************************************************************/
  7. #include "stm32f10x.h"
  8. #include "stm32f10x_conf.h"
  9. #include "UserConfiguration.h"
  10. #include "UserFunction.h"
  11. #include "UserDelay.h"
  12. #include "lcd.h"
  13. #include "led.h"

  14. extern s32 CNT2,CNT3,CNT4,CNT5,V2,V3,V4,V5,rcnt2,rcnt3,rcnt4,rcnt5;

  15. int main(void)
  16. {        
  17.           SystemInit();

  18.         UserNVIC_Configuration();

  19.         UserTIM_Configuration();   

  20.         UserLed_Configuration();

  21.         UserDelay_Configuration();

  22.         while(1)
  23.         {                                                               
  24.            delay_ms(200);LED1=!LED1;delay_ms(200);//LED1提示系統(tǒng)正常運行
  25.         }        
  26.         
  27.         
  28.          
  29. }

復(fù)制代碼

所有資料51hei提供下載:
基于戰(zhàn)艦STM32開發(fā)簡易直流電機速度環(huán)PID閉環(huán)控制.rar (477.73 KB, 下載次數(shù): 865)


評分

參與人數(shù) 5黑幣 +36 收起 理由
songhetai + 21 很給力!
shybody001 + 5
emmmmm + 5 贊一個!
1512 + 3
lzts88 + 2 贊一個!

查看全部評分

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

使用道具 舉報

沙發(fā)
ID:228357 發(fā)表于 2018-5-21 19:38 | 只看該作者
好東西,沒有人評論下?
回復(fù)

使用道具 舉報

板凳
ID:88919 發(fā)表于 2018-5-22 23:04 | 只看該作者
好東西 下來學(xué)習(xí)玩玩
回復(fù)

使用道具 舉報

地板
ID:228452 發(fā)表于 2018-5-26 04:53 | 只看該作者
Display the speed of the motor or encoder would be nice
回復(fù)

使用道具 舉報

5#
ID:197515 發(fā)表于 2018-5-26 19:41 | 只看該作者
厲害了。流明
回復(fù)

使用道具 舉報

6#
ID:218529 發(fā)表于 2018-6-2 17:16 | 只看該作者
學(xué)習(xí)啦 頂一個個
回復(fù)

使用道具 舉報

7#
ID:160072 發(fā)表于 2018-6-21 10:36 | 只看該作者
很厲害哦 學(xué)習(xí)了
回復(fù)

使用道具 舉報

8#
ID:320670 發(fā)表于 2018-7-20 16:38 | 只看該作者
值得參考
回復(fù)

使用道具 舉報

9#
ID:320670 發(fā)表于 2018-7-20 16:38 | 只看該作者
值得參考
回復(fù)

使用道具 舉報

10#
ID:347083 發(fā)表于 2018-7-26 00:10 | 只看該作者
已下載,謝謝
回復(fù)

使用道具 舉報

11#
ID:382485 發(fā)表于 2018-8-3 14:44 | 只看該作者

好東西,我來好評
回復(fù)

使用道具 舉報

12#
ID:375234 發(fā)表于 2018-8-6 22:00 | 只看該作者
感謝分享,下下來看看
回復(fù)

使用道具 舉報

13#
ID:284462 發(fā)表于 2018-8-8 11:56 | 只看該作者

感謝分享,下下來看看
回復(fù)

使用道具 舉報

14#
ID:286687 發(fā)表于 2018-8-8 13:58 | 只看該作者
想知道樓主PID怎么調(diào)的 最近調(diào)四軸的PID調(diào)得想死
回復(fù)

使用道具 舉報

15#
ID:77604 發(fā)表于 2018-8-8 16:16 | 只看該作者
贊  贊  贊  樓主厲害  
回復(fù)

使用道具 舉報

16#
ID:380389 發(fā)表于 2018-8-8 19:04 來自觸屏版 | 只看該作者
謝謝樓主分享
回復(fù)

使用道具 舉報

17#
ID:387516 發(fā)表于 2018-8-18 11:36 | 只看該作者
厲害哦 學(xué)習(xí)了
回復(fù)

使用道具 舉報

18#
ID:365823 發(fā)表于 2018-9-16 18:57 | 只看該作者
下載來看看
回復(fù)

使用道具 舉報

19#
ID:15170 發(fā)表于 2018-10-12 09:22 | 只看該作者
正在做這方面的,下來學(xué)習(xí)。謝謝分享
回復(fù)

使用道具 舉報

20#
ID:405591 發(fā)表于 2019-2-26 13:32 | 只看該作者
謝謝分享,急需的資料
回復(fù)

使用道具 舉報

21#
ID:409126 發(fā)表于 2019-3-3 21:35 | 只看該作者
樓主你好,請問是增量式還是位置式的PID調(diào)速呢
回復(fù)

使用道具 舉報

22#
ID:255946 發(fā)表于 2019-3-7 13:10 | 只看該作者
謝謝分享
回復(fù)

使用道具 舉報

23#
ID:428273 發(fā)表于 2019-3-9 22:29 | 只看該作者
不錯!贊一個
回復(fù)

使用道具 舉報

24#
ID:390701 發(fā)表于 2019-3-9 23:06 | 只看該作者
贊一個
回復(fù)

使用道具 舉報

25#
ID:479685 發(fā)表于 2019-3-13 17:41 | 只看該作者
是完整的代碼嗎
回復(fù)

使用道具 舉報

26#
ID:481460 發(fā)表于 2019-3-19 10:35 | 只看該作者
學(xué)習(xí)參考下
回復(fù)

使用道具 舉報

27#
ID:499146 發(fā)表于 2019-3-29 09:28 | 只看該作者
贊一個
回復(fù)

使用道具 舉報

28#
ID:495814 發(fā)表于 2019-5-15 19:15 | 只看該作者
好東西 下來學(xué)習(xí)玩玩
回復(fù)

使用道具 舉報

29#
ID:544118 發(fā)表于 2019-5-21 19:54 | 只看該作者
不錯哦,學(xué)習(xí)
回復(fù)

使用道具 舉報

30#
ID:439204 發(fā)表于 2019-7-15 23:42 | 只看該作者
6666值得學(xué)習(xí)
回復(fù)

使用道具 舉報

31#
ID:589372 發(fā)表于 2019-7-24 09:50 | 只看該作者
感謝樓主
回復(fù)

使用道具 舉報

32#
ID:565203 發(fā)表于 2019-8-25 12:26 | 只看該作者
感謝樓主
回復(fù)

使用道具 舉報

33#
ID:565203 發(fā)表于 2019-8-25 12:30 | 只看該作者
贊一個
回復(fù)

使用道具 舉報

34#
ID:593904 發(fā)表于 2019-8-30 06:24 來自觸屏版 | 只看該作者
不完整
回復(fù)

使用道具 舉報

35#
ID:542711 發(fā)表于 2019-10-18 02:36 來自觸屏版 | 只看該作者
好資料,謝謝
回復(fù)

使用道具 舉報

36#
ID:567424 發(fā)表于 2019-11-19 22:14 | 只看該作者
下載學(xué)習(xí)一下
回復(fù)

使用道具 舉報

37#
ID:657619 發(fā)表于 2019-12-6 15:36 | 只看該作者
學(xué)習(xí)一下
回復(fù)

使用道具 舉報

38#
ID:239620 發(fā)表于 2019-12-10 14:51 | 只看該作者
不錯的資料,用來學(xué)習(xí),謝謝!
回復(fù)

使用道具 舉報

39#
ID:660878 發(fā)表于 2019-12-10 18:42 | 只看該作者
值得學(xué)習(xí)一下
回復(fù)

使用道具 舉報

40#
ID:868710 發(fā)表于 2020-12-27 12:57 | 只看該作者
不錯的例程學(xué)習(xí)一下
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表