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

stm32控制直流电机

[复制链接]
STMCU小助手 发布时间:2023-1-17 21:00
stm32控制直流电机
0 y" s5 ]% u- P* f! |- n3 x+ q+ F% R1 \7 m0 @! P! e8 a( Z. [
  1. #include "sys.h"
    % F/ Q, n: \' w4 b% g( r) ?9 ~9 P
  2. #include "DCmotor.h"3 q  a0 h# E) @+ \. E2 [- @" `
  3. void DCmotor_Init(void)$ T2 t. [% d! R
  4. {
    $ N5 ~; v4 i: O) P5 T8 |
  5.         GPIO_InitTypeDef GPIO_InitStructure;
    9 ]) r! y, I6 N- \+ r
  6.   RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE);
    ; C% m3 T6 v9 R
  7.   GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10| GPIO_Pin_11  ;% u! Y2 O9 _8 [2 f7 S5 W1 z( k; d( ]
  8.   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;$ a  x: N8 w6 s2 I7 @
  9.   GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;; m) N7 S" N, D! ^( w% d
  10.   GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;; W0 ^; A# o1 w- G, K; x/ m
  11.   GPIO_Init(GPIOA, &GPIO_InitStructure);
    7 G0 t( T$ ?" c
  12.   GPIO_SetBits(GPIOA,GPIO_Pin_10);
    2 k/ x( x  s/ }; {# l/ y
  13.         GPIO_ResetBits(GPIOA,GPIO_Pin_11);
    - \' B$ _9 A7 _) Z
  14.         4 j7 ^( T0 ]* Q+ w3 h/ H
  15.        
    ( Z& x( G6 q# k% j0 Y  R
  16.        
    6 R3 `2 M6 z3 Q
  17.   RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB, ENABLE);2 |! V1 J2 L$ A' v
  18.   GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8  ;' S0 e$ A1 U7 x( Y5 b
  19.   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
    2 f0 E! d- z6 l' N$ G
  20.   GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;; c- v+ d/ w% V
  21.   GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;9 m  n  O# c0 k$ T/ n% ~
  22.   GPIO_Init(GPIOB, &GPIO_InitStructure);
    5 `4 F% m% h8 M0 @
  23.   
    5 M0 E/ d0 q& i3 E! u( ~0 N
  24.        
    # e% X) w3 |  I2 d4 N5 i* h
  25. }" d+ l, @8 F1 F0 x% R$ f
  26. & P: @9 |4 H+ R: B% @# R

  27. 1 f) H2 E% k# k$ J$ S; d( [
  28. void TIM4_PWM_Init(u32 arr,u32 psc)) ~0 i$ ?% r0 a
  29. {                                                          
    ) f% @9 X$ e, }7 d: ^- o
  30.         //此部分需手动修改IO口设置2 S. ~6 |9 O& L& i5 e: F1 C( f$ t
  31.        
    3 G1 q: F" f+ k% }
  32.         GPIO_InitTypeDef GPIO_InitStructure;- Q" [) t4 b/ D6 ?. ^/ t
  33.         TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;
    ; v% j% {8 V* ?  t
  34.         TIM_OCInitTypeDef  TIM_OCInitStructure;
    9 U" N( w( S8 x
  35.         9 [. t' c9 w& F2 U8 a
  36.         RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4,ENABLE);          //TIM14时钟使能   
    / n. u' T5 |$ j  v) Y
  37.         RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOD, ENABLE);         //使能PORTF时钟        2 y+ ?. }! v; {' ]7 m! J
  38.        
    # T$ u7 ?/ _% Y3 V  w& B2 Z
  39.         GPIO_PinAFConfig(GPIOD,GPIO_PinSource12,GPIO_AF_TIM4); //GPIOF9复用为定时器14
    ! d4 @; I- E) Z
  40.         ) l0 j( ]4 `. ]
  41.         GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12;           //GPIOF9
    ( \- v4 M7 k2 S& N+ z
  42.         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;        //复用功能7 t' `" I; u* g6 g1 {4 }
  43.         GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;        //速度100MHz6 m( R- W- G# _5 @3 ~/ a
  44.         GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;      //推挽复用输出1 b+ J! `  F8 Z3 c) {% g
  45.         GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;        //上拉# _' C7 F" d7 x. `. ?" N
  46.         GPIO_Init(GPIOD,&GPIO_InitStructure);              //初始化PF9
    % n0 Y4 L+ ~( r9 a
  47.           
    . Y! J/ p1 Z0 r/ ]2 C/ h1 Z* D
  48.         TIM_TimeBaseStructure.TIM_Prescaler=psc;  //定时器分频
    $ A, [/ R/ e2 Z6 D
  49.         TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up; //向上计数模式5 h2 F$ b/ e8 o- d: A* \
  50.         TIM_TimeBaseStructure.TIM_Period=arr;   //自动重装载值
    ; {- h! D1 N9 m& ]1 c
  51.         TIM_TimeBaseStructure.TIM_ClockDivision=TIM_CKD_DIV1;
    ) ]! ~; P" V- H9 W
  52.         6 m  d$ Y2 S$ ]& |! |
  53.         TIM_TimeBaseInit(TIM4,&TIM_TimeBaseStructure);//初始化定时器14& Y( A# u0 |. b2 h, [  d: S
  54.        
    2 }" ?$ K, A5 |1 D5 L+ E% Z* t
  55.         //初始化TIM14 Channel1 PWM模式         
    & u& K$ ?. T1 q$ d* v
  56.         TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1; //选择定时器模式:TIM脉冲宽度调制模式2
    - j4 w7 i; s, X8 _
  57.         TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; //比较输出使能
    ; q2 \/ a/ C& _7 A
  58.         TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_Low; //输出极性:TIM输出比较极性低; D$ }3 U3 ~! L2 S
  59.         TIM_OC1Init(TIM4, &TIM_OCInitStructure);  //根据T指定的参数初始化外设TIM1 4OC15 t  `& Y' y0 h( T

  60. 8 @& Z! D/ }- s0 D2 h' Y
  61.         TIM_OC1PreloadConfig(TIM4, TIM_OCPreload_Enable);  //使能TIM14在CCR1上的预装载寄存器
    ' E6 r- p' ?6 ^

  62. 8 Y0 J( N& F5 F" Z0 C; `  E
  63.   TIM_ARRPreloadConfig(TIM4,ENABLE);//ARPE使能 4 ~* @" K7 F) @, d% L3 t
  64.         . H8 Y- a/ f+ y
  65.         TIM_Cmd(TIM4, ENABLE);  //使能TIM14
    ) z7 \* P0 O9 ?2 @! _7 }
  66.   {" d: h# {/ y
  67.                                                                                   8 x4 l: P" x9 H, m8 W) q
  68. }  + j' A8 q. W4 X. D- a2 P. A9 r( l
复制代码
————————————————
( s' r% y5 i; \4 Z. k版权声明:地板不会说谎
0 [: D6 l6 S! z  {# ]1 G+ d& s5 ?
2 Q! Z& K! N: o
0 P9 w. y6 I2 E  p, S9 Q. b' ?
收藏 评论0 发布时间:2023-1-17 21:00

举报

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