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

stm32控制直流电机

[复制链接]
STMCU小助手 发布时间:2023-1-17 21:00
stm32控制直流电机
+ h- y& A2 o; Y# C6 x. a
: c4 W3 U  n& V! f7 ~" A# G
  1. #include "sys.h"* |3 u$ V4 i  K, @. \2 J# V/ `
  2. #include "DCmotor.h"
    . p* p. ]  Y5 {% |7 q& E; D" P0 t
  3. void DCmotor_Init(void)
    5 R4 s8 i3 q) |2 ~4 s, l
  4. {
    ( D% `/ ~6 Q5 q  b6 H  ]% N; Y
  5.         GPIO_InitTypeDef GPIO_InitStructure;/ v; ?( J7 J' Y
  6.   RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE);3 U0 X2 ?8 {; M0 x  {: J2 w% L
  7.   GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10| GPIO_Pin_11  ;. f" v; [% Y2 h5 H$ P; j; L
  8.   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
    + j# z) _& x* I3 V
  9.   GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
    ' Y( l3 ~$ @8 [, f  |" s
  10.   GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;5 T1 V  A4 B1 }
  11.   GPIO_Init(GPIOA, &GPIO_InitStructure);1 O  G# n0 K: G) T! Q
  12.   GPIO_SetBits(GPIOA,GPIO_Pin_10);& I* g: }: h4 f& q8 e+ a  W
  13.         GPIO_ResetBits(GPIOA,GPIO_Pin_11);
    3 W( n5 c. k5 E, W3 F5 ]8 t2 e
  14.         / n+ y" r# a& ~9 L
  15.        
    8 f  C" \5 _$ s' L5 u" a
  16.        
    0 _( d5 {6 f: A/ ?3 B
  17.   RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB, ENABLE);4 M% ^0 L/ f; \, l4 R* X
  18.   GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8  ;
    9 S) m: {& Z$ p, d! I6 u- V
  19.   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;( Y, W! Y4 n* o
  20.   GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;' Y) |! I, }& o
  21.   GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    " t! T; I) }: {& _
  22.   GPIO_Init(GPIOB, &GPIO_InitStructure);0 `6 n  A. C; a. d
  23.   
    / i9 S! S' Y5 ]# G! b
  24.         3 S# J$ I  O7 n
  25. }
    & r4 F& A+ ^6 t" T# |
  26.   C/ A. T1 Y8 v

  27. " w% n4 {2 C% D+ N
  28. void TIM4_PWM_Init(u32 arr,u32 psc)
    6 e! B$ t' {2 C; s1 [1 i2 e' ]4 _
  29. {                                                          
    & I, N2 ~1 S. {( r' o. E/ K% p6 Z
  30.         //此部分需手动修改IO口设置
    8 q5 A1 E# U8 k/ ]  V8 M" O
  31.        
    . @2 V8 v+ ?- n
  32.         GPIO_InitTypeDef GPIO_InitStructure;
    # o" x0 M! v8 y1 ]$ `
  33.         TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;* Y. O& N9 m( W# F" L" h
  34.         TIM_OCInitTypeDef  TIM_OCInitStructure;
    * @0 T) H1 z/ v" {) d
  35.         ; _0 F, E! i4 }$ @( b. k
  36.         RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4,ENABLE);          //TIM14时钟使能   
    * R4 R9 Q" c* q9 \6 I+ m
  37.         RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOD, ENABLE);         //使能PORTF时钟       
    7 n; |% d& U0 @& _
  38.         - E6 v" f  L+ ]. H; _/ h5 v
  39.         GPIO_PinAFConfig(GPIOD,GPIO_PinSource12,GPIO_AF_TIM4); //GPIOF9复用为定时器14
    $ v& h7 @1 |. r. n8 a% Y
  40.        
    * U9 n8 S9 s: P: O2 J4 n
  41.         GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12;           //GPIOF9  A0 m* `  S! v5 e
  42.         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;        //复用功能2 i7 p- l6 S# M8 k, U
  43.         GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;        //速度100MHz& |* n: M: R& k7 m9 t/ p- b' y' u
  44.         GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;      //推挽复用输出; y+ S5 f) e- D" |6 u3 r
  45.         GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;        //上拉8 U% W! Z! x2 l7 f% e3 W+ L
  46.         GPIO_Init(GPIOD,&GPIO_InitStructure);              //初始化PF9
    $ u) G* x" I$ {1 r0 z
  47.           ) j, ~7 `7 b' V) F9 d+ Y
  48.         TIM_TimeBaseStructure.TIM_Prescaler=psc;  //定时器分频3 T$ e1 }1 U3 Z. ?9 m
  49.         TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up; //向上计数模式8 c4 @% W4 g  d$ }3 V  f$ s8 R
  50.         TIM_TimeBaseStructure.TIM_Period=arr;   //自动重装载值" y) _0 @# d2 r1 b
  51.         TIM_TimeBaseStructure.TIM_ClockDivision=TIM_CKD_DIV1;
    / W1 I+ ?9 Z# o4 j
  52.           r" `& {" n7 C# j
  53.         TIM_TimeBaseInit(TIM4,&TIM_TimeBaseStructure);//初始化定时器140 r* m% {" {) e' d
  54.         3 l9 {6 o, U6 E
  55.         //初始化TIM14 Channel1 PWM模式         
    2 n& s' x/ r7 i9 M, X8 ?/ u* Y
  56.         TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1; //选择定时器模式:TIM脉冲宽度调制模式21 B/ y4 o( w' |8 U: V5 Z
  57.         TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; //比较输出使能
    0 q& o* I8 q3 X& b
  58.         TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_Low; //输出极性:TIM输出比较极性低, @0 w2 c4 Y- f7 E# l
  59.         TIM_OC1Init(TIM4, &TIM_OCInitStructure);  //根据T指定的参数初始化外设TIM1 4OC1
    & a! ]$ J4 f1 Q
  60. " }- _/ g6 I% {: A1 A  T
  61.         TIM_OC1PreloadConfig(TIM4, TIM_OCPreload_Enable);  //使能TIM14在CCR1上的预装载寄存器1 T6 V, I" U3 C7 ]( t
  62. " }. d$ ~1 H! E
  63.   TIM_ARRPreloadConfig(TIM4,ENABLE);//ARPE使能 4 v  {: x: F* U5 A# `3 b+ R" i
  64.        
    6 l$ X) j4 s! U2 f9 i
  65.         TIM_Cmd(TIM4, ENABLE);  //使能TIM142 p6 B5 M% V; M' y7 y* a

  66. 2 e/ |2 ~6 @* G2 g* M7 X
  67.                                                                                   
    $ c& Q( i6 {* l, t/ a; J* L& z2 ]
  68. }  8 k$ U9 ~: }9 S9 U! ]
复制代码
————————————————
- R) \3 L1 c& _1 ^# F0 l版权声明:地板不会说谎1 F9 n' r. ~! ]$ B5 q

: }, Q0 x8 O" p1 D3 {4 w  y' I  c- t2 ?
收藏 评论0 发布时间:2023-1-17 21:00

举报

0个回答

所属标签

相似技术帖

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