你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

stm32控制直流电机

[复制链接]
STMCU小助手 发布时间:2023-1-17 21:00
stm32控制直流电机. D' s. O4 T/ ~" v3 i) \: |
; t, H- X7 H: o# q
  1. #include "sys.h"6 O. `: F# R3 N0 n
  2. #include "DCmotor.h"; p( }  h  r6 ~) ~7 u
  3. void DCmotor_Init(void), D7 j7 a/ |' x6 m6 F$ e( z! F
  4. {2 ~' q  k& C, A9 F' g. m& \
  5.         GPIO_InitTypeDef GPIO_InitStructure;
    ) D- s# V$ L7 Z1 T# l0 E, M
  6.   RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE);1 R2 F3 i) n" r5 e+ ~# ?6 o
  7.   GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10| GPIO_Pin_11  ;; a# {+ b/ C4 O0 ^4 ?8 c
  8.   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;$ T7 A1 e# v$ R, d1 o# b1 V
  9.   GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
    # b/ n  F7 u: [2 {: L, p1 ~
  10.   GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;; S' j3 k( _' r! W% b7 I
  11.   GPIO_Init(GPIOA, &GPIO_InitStructure);
    2 ]& o- f3 Z7 m6 N$ E1 l) e
  12.   GPIO_SetBits(GPIOA,GPIO_Pin_10);4 m& j) P  P: _$ Q2 H' t3 H% |1 X
  13.         GPIO_ResetBits(GPIOA,GPIO_Pin_11);# s8 r. U3 C% x) c1 [1 |. n# t4 ~
  14.         0 m) t5 H7 L7 R! P9 d  \. k7 E
  15.        
    - {; q& D) }. j' {
  16.         ' H7 c1 A+ T; E2 U! G8 h$ V
  17.   RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB, ENABLE);+ `6 {* B: S- ~# n# n5 G
  18.   GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8  ;) Z  `6 {3 Z" A5 `5 s5 g) ~
  19.   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;2 U8 Y7 \: k" E2 o( Q4 R
  20.   GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;/ c5 |5 Z$ g  N5 x" y
  21.   GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;9 F" c5 P* |1 P, ?3 F0 D! M: l& C: C
  22.   GPIO_Init(GPIOB, &GPIO_InitStructure);
    1 a$ r" Y) b% e7 y& F
  23.   8 Y- O. w/ f8 j# f
  24.         & o0 |9 u% G- V) q1 t3 U
  25. }
    3 E7 q4 \6 G' r& H8 O& L. w

  26. & c* A' H* I( `# I

  27. 6 X7 g9 U: n/ }
  28. void TIM4_PWM_Init(u32 arr,u32 psc)
    3 U3 n4 W$ q! f  _+ M! h: m8 D
  29. {                                                          4 B3 _$ N4 y* i+ c
  30.         //此部分需手动修改IO口设置
    3 H; Z# d8 ?9 h% l" o3 g
  31.         3 j; C3 p  _. o6 D+ D8 Y1 O
  32.         GPIO_InitTypeDef GPIO_InitStructure;
    % Z! x+ |# V+ M' A4 U6 _
  33.         TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;% `( q' R) _$ C; u" s( ?
  34.         TIM_OCInitTypeDef  TIM_OCInitStructure;
    " Q: k; j+ ]7 o
  35.        
    1 g6 ?3 y) \* @. R7 C; X
  36.         RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4,ENABLE);          //TIM14时钟使能    3 v5 T0 r. {% `; D& a% \* {
  37.         RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOD, ENABLE);         //使能PORTF时钟       
    " @2 a/ A5 a; T! P% O2 H
  38.        
    ( Y  L) s# h% @2 D1 j
  39.         GPIO_PinAFConfig(GPIOD,GPIO_PinSource12,GPIO_AF_TIM4); //GPIOF9复用为定时器145 N, X/ u3 i4 |3 f
  40.         - W! r- G8 P$ h* b# G5 V* u
  41.         GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12;           //GPIOF9. @* M2 Z& E1 M: p
  42.         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;        //复用功能- |5 Q+ H) T: Z6 Q
  43.         GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;        //速度100MHz5 W: t! j" N8 t
  44.         GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;      //推挽复用输出
    , [4 O- |# X/ z: R& z  V
  45.         GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;        //上拉2 c/ n) I5 e& t' s
  46.         GPIO_Init(GPIOD,&GPIO_InitStructure);              //初始化PF9
    - u8 _6 m( Y# \# X& Q" ^
  47.           5 x6 }& K& C; h% A. [( e/ B* a* s
  48.         TIM_TimeBaseStructure.TIM_Prescaler=psc;  //定时器分频8 c: n2 B% p! _1 V/ Q$ _2 B1 c" D' V
  49.         TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up; //向上计数模式
    & ^" ]0 d# a% n2 }6 i
  50.         TIM_TimeBaseStructure.TIM_Period=arr;   //自动重装载值
    % i! i  ~5 ]: q* U  Q  w5 V
  51.         TIM_TimeBaseStructure.TIM_ClockDivision=TIM_CKD_DIV1;   D1 X6 a- V; F8 B. [
  52.         ! B7 ~7 |* T+ L' F/ \( o( H, a( y
  53.         TIM_TimeBaseInit(TIM4,&TIM_TimeBaseStructure);//初始化定时器14  j0 ]0 w8 s. o' n  R" H
  54.         * e: B8 C, @0 e$ T- a9 ~* w4 n: p
  55.         //初始化TIM14 Channel1 PWM模式         
      f- Q' L: r7 B. |
  56.         TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1; //选择定时器模式:TIM脉冲宽度调制模式29 r* D% R5 d" D, v7 j# d- U1 _5 q
  57.         TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; //比较输出使能
    & x6 R. T! Z, \4 a" f3 O
  58.         TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_Low; //输出极性:TIM输出比较极性低
    / G  v1 @/ W- E0 |
  59.         TIM_OC1Init(TIM4, &TIM_OCInitStructure);  //根据T指定的参数初始化外设TIM1 4OC1. T) g- j0 [& N+ L# o! w- @' r0 z

  60. $ L6 i) |/ H+ J4 f, a8 f
  61.         TIM_OC1PreloadConfig(TIM4, TIM_OCPreload_Enable);  //使能TIM14在CCR1上的预装载寄存器- v8 A; V) `! S8 ~. l! j" t
  62. 0 x  l0 `7 h* D; j- L; u
  63.   TIM_ARRPreloadConfig(TIM4,ENABLE);//ARPE使能 ; Z# z4 }* T2 @. m, I4 L
  64.        
    0 T9 }, ~; F( P( ]2 J5 R
  65.         TIM_Cmd(TIM4, ENABLE);  //使能TIM14% Y* s' x" J4 `8 W; v' F/ E
  66. * W6 H* T* K2 x8 A* R6 l+ \, Z/ m
  67.                                                                                   % G0 a" O0 Q( A6 `9 B4 h% B/ j
  68. }  
    % t. U* s* T* u5 c" p
复制代码
————————————————
+ P% T# R6 S# u- P: T* R版权声明:地板不会说谎
* X. B' C( L" K2 B
: _% f5 V' v# j# X/ z  R* P6 }) F/ I4 b& }
收藏 评论0 发布时间:2023-1-17 21:00

举报

0个回答
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版