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

stm32控制直流电机

[复制链接]
STMCU小助手 发布时间:2023-1-17 21:00
stm32控制直流电机3 ~% k7 p4 c! d  U' C

9 J7 G0 Z; r" s
  1. #include "sys.h"
    3 S" K& T" \- p
  2. #include "DCmotor.h"$ o; v/ w. Y# f
  3. void DCmotor_Init(void); s8 a. M6 e1 u' |% e/ z3 V
  4. {/ K) R4 _1 I7 ]1 C. [
  5.         GPIO_InitTypeDef GPIO_InitStructure;! `$ o  \! B" i
  6.   RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE);
    9 Q( g. X4 x2 u, R, U, q1 G  t
  7.   GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10| GPIO_Pin_11  ;
    * r% M7 E- b: A) _
  8.   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;5 S1 s6 W7 d% i$ S) V: o# W
  9.   GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
    ' a( a+ ?3 }6 b- f
  10.   GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;! K. b! \) F' d  x' V- W. y1 V
  11.   GPIO_Init(GPIOA, &GPIO_InitStructure);
    9 S) ~) T/ N" d' n
  12.   GPIO_SetBits(GPIOA,GPIO_Pin_10);
    ' ?! u8 w# `7 M7 d; k* G
  13.         GPIO_ResetBits(GPIOA,GPIO_Pin_11);
    5 S5 Q) O9 |3 G( `  B/ }
  14.        
    ( [) ]; g+ k9 [6 ?# W
  15.         # d$ R5 M' w. _; q4 P
  16.         . e3 l# E8 m. Y9 |
  17.   RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB, ENABLE);
    3 a# g. b( v; ^* v% P& u. R
  18.   GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8  ;& S. \. b! t. p8 n1 p
  19.   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;# z  ]8 s1 M7 @' P0 o$ n* r
  20.   GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
    & @& R! b' Y9 W2 w4 ?5 s( r/ H. k
  21.   GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;' T% n- p* \2 r  i. S) P; _
  22.   GPIO_Init(GPIOB, &GPIO_InitStructure);
    & H! r4 ^( n$ f% C4 c! e$ b
  23.   " h! U  F' q+ H1 ]6 f5 c
  24.         ! ]6 F: r5 i2 Y) z* t: Z
  25. }
    $ ]8 U. u" m# f0 A  g
  26. - R( j6 F! |# V1 P$ R

  27. - }9 Q6 j  A3 k) I6 p$ s  h; y
  28. void TIM4_PWM_Init(u32 arr,u32 psc)
    . C3 L9 ?8 T: o# U
  29. {                                                          
    # R4 Q$ {  D9 l$ g/ y
  30.         //此部分需手动修改IO口设置
    # v, j) e  h$ v
  31.        
    1 l; A6 h) R& s% H4 s* F4 y$ k- u" V
  32.         GPIO_InitTypeDef GPIO_InitStructure;1 J9 V* p; B/ K% D' d- y, M! `
  33.         TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;( l# z9 `& {* D. _9 e4 Q' b; g
  34.         TIM_OCInitTypeDef  TIM_OCInitStructure;/ P; Z  N$ ]/ H8 J+ U
  35.         ; m8 D0 _5 k) y1 e
  36.         RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4,ENABLE);          //TIM14时钟使能   
    4 i2 Q1 m1 e: x5 L6 N% A
  37.         RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOD, ENABLE);         //使能PORTF时钟       
    % P* x: ]# p+ g5 ^
  38.         & l  Z9 I9 g+ k1 b
  39.         GPIO_PinAFConfig(GPIOD,GPIO_PinSource12,GPIO_AF_TIM4); //GPIOF9复用为定时器14
    , Q: h" i# g4 f. v. m: p0 k/ g
  40.        
      u1 ?. M6 o( a7 R
  41.         GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12;           //GPIOF95 L& x* K  w5 j' f
  42.         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;        //复用功能, \' m( C2 p9 ~" D
  43.         GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;        //速度100MHz/ b  n" z0 L$ |: ^( K
  44.         GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;      //推挽复用输出
    3 M, M. w( P6 g9 O& X4 ^) A
  45.         GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;        //上拉* B! Z9 Y- X8 G8 p' I) J3 i! z
  46.         GPIO_Init(GPIOD,&GPIO_InitStructure);              //初始化PF9, B6 }* F& ~6 ~7 E" h* Y8 f7 m
  47.           
    ! G3 l4 w1 i( {3 J2 Y8 R. h: G
  48.         TIM_TimeBaseStructure.TIM_Prescaler=psc;  //定时器分频
    8 ]- O' u) h) H0 `
  49.         TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up; //向上计数模式0 o$ s; m6 P3 n" W! O3 h+ P0 g7 j
  50.         TIM_TimeBaseStructure.TIM_Period=arr;   //自动重装载值6 ]- K8 V3 _8 U3 Q" J
  51.         TIM_TimeBaseStructure.TIM_ClockDivision=TIM_CKD_DIV1;
    & m, w2 v  H, G1 E/ n) J
  52.        
    9 ~% T2 I, V) e/ c2 U
  53.         TIM_TimeBaseInit(TIM4,&TIM_TimeBaseStructure);//初始化定时器14
    " p! U  e+ p! L# z( j; i
  54.        
    ( R4 B( y3 w6 i* ~" B, w
  55.         //初始化TIM14 Channel1 PWM模式         " ~2 `  c: s" B
  56.         TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1; //选择定时器模式:TIM脉冲宽度调制模式2
    " @$ d, t' |4 ?9 n: S
  57.         TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; //比较输出使能* G5 V1 c  T, Z" s
  58.         TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_Low; //输出极性:TIM输出比较极性低2 P0 K# z9 j' w8 T2 `( J
  59.         TIM_OC1Init(TIM4, &TIM_OCInitStructure);  //根据T指定的参数初始化外设TIM1 4OC1+ |8 I) l7 ?6 k/ h! Z' H+ H
  60. / Y- a" K6 [* W5 e; A% q; S: Z
  61.         TIM_OC1PreloadConfig(TIM4, TIM_OCPreload_Enable);  //使能TIM14在CCR1上的预装载寄存器; G' [* v1 f, e
  62. ) j( |1 V% [/ \1 E
  63.   TIM_ARRPreloadConfig(TIM4,ENABLE);//ARPE使能
    - ?& k' u. X* y% ~* [
  64.        
    " P5 B% t" t/ j. k" ?% s9 Z- n$ b
  65.         TIM_Cmd(TIM4, ENABLE);  //使能TIM147 l! k( V; T+ h2 N

  66. 5 F( |) C. V  S7 r! Z3 X
  67.                                                                                   
    & T5 p$ w) A& [1 Y: A2 ~
  68. }  
      y9 S. r6 A" z6 S7 l  o6 U0 p3 s
复制代码
————————————————
4 d: o6 I3 ^/ F, F# c+ i$ _0 g版权声明:地板不会说谎
. l6 D9 D8 Q+ Z3 R8 r; H& a9 W
) N* }3 {8 C7 m# q
收藏 评论0 发布时间:2023-1-17 21:00

举报

0个回答
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版