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

stm32控制直流电机

[复制链接]
STMCU小助手 发布时间:2023-1-17 21:00
stm32控制直流电机
. h) R6 }$ |$ s/ j5 _7 X#include "sys.h"
& X4 {* z. u4 B#include "DCmotor.h"
: e. T' O+ c: U  P+ S) Hvoid DCmotor_Init(void)
& B3 E/ l4 {# q/ R1 d3 m( ~( I" O{
( ]8 v+ u# }4 f4 y7 g        GPIO_InitTypeDef GPIO_InitStructure;
. Z( \6 c' k' j  V# E  RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE);
7 j. z5 s9 x7 B8 x6 R9 ^8 f& f  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10| GPIO_Pin_11  ;
2 {1 m  X6 r" K6 Y3 B  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
( x) Q+ i, [8 G6 s' x0 q( i% H  GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
' v$ R+ m& ^, Z3 P: m  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;7 K3 X% k0 i- t
  GPIO_Init(GPIOA, &GPIO_InitStructure);
& f! L- N2 z8 @& o" l; r  GPIO_SetBits(GPIOA,GPIO_Pin_10);
; }8 U! u$ |  ]  I1 L. v9 X        GPIO_ResetBits(GPIOA,GPIO_Pin_11);
8 H3 ^7 R/ H0 n) H6 l: S# z        1 \1 d0 G! K  h/ c
        . H$ A# X8 F# y/ n- x
       
( {$ f& h* w9 f  RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB, ENABLE);2 s1 V( q/ I# Z; w4 `0 ?5 ]& u
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8  ;
# t. p4 @8 i$ K* G& j0 k: l9 S2 t  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
$ |1 v" y- I( m5 u2 o) |9 [  GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
! F: d7 V& a2 h1 A3 `2 T' B  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
5 P3 q: o# h0 {$ _& l' s/ a  p  GPIO_Init(GPIOB, &GPIO_InitStructure);
5 h8 A7 d- x7 @. n  8 ?% U  X/ h! [7 L  X9 W% O( r
        * z4 q8 n: ~0 k, n2 D
}
/ U# O5 N0 }; g, h# H, v+ h# v" Y# O* I
! {, e& s, N: s, d. |8 O# V
. r  X% Q7 p6 D
& H6 ~5 x4 I+ N5 {& ?# _" @7 i9 ^4 e
void TIM4_PWM_Init(u32 arr,u32 psc)
( j/ w/ S4 U. f3 `4 X. A{                                                          
0 {3 a0 o% C! ^9 W' z        //此部分需手动修改IO口设置& W) r- c9 s) I! b% U
        : O1 V) c/ C9 J/ j) X
        GPIO_InitTypeDef GPIO_InitStructure;
9 G! i$ i7 b6 h- x        TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;; Q) a- w+ A4 P1 P& k
        TIM_OCInitTypeDef  TIM_OCInitStructure;# O. K9 g) ?7 F( _+ y, y
        2 ]' s; S, k  K
        RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4,ENABLE);          //TIM14时钟使能    ; _9 l' a. k( s# j
        RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOD, ENABLE);         //使能PORTF时钟        & y$ [' ^  z4 W/ q1 N
       
+ ~! [! O1 }/ C. s1 e8 D/ i9 I        GPIO_PinAFConfig(GPIOD,GPIO_PinSource12,GPIO_AF_TIM4); //GPIOF9复用为定时器14$ Q2 A1 |. H  d; @1 U
        . O: C& p: Z! _/ O4 r! p
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12;           //GPIOF9' G1 ?7 j& |+ `0 v
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;        //复用功能4 W. ~  s8 T! }' a
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;        //速度100MHz
* O0 \' E1 C4 D- d# c4 m3 M        GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;      //推挽复用输出" [# I8 R2 Z, f! c) m- R6 O
        GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;        //上拉
, E/ F; A# ^3 c. w) Z9 b        GPIO_Init(GPIOD,&GPIO_InitStructure);              //初始化PF9
4 d8 O9 h. c# v: S4 [( F( @  J          , C4 ~8 x6 N9 \' ~
        TIM_TimeBaseStructure.TIM_Prescaler=psc;  //定时器分频  V9 P6 `& t' D! y/ u' y! B7 h
        TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up; //向上计数模式4 H5 h" w: X% ?2 S
        TIM_TimeBaseStructure.TIM_Period=arr;   //自动重装载值
, a" k, \3 q/ l  o) p5 {        TIM_TimeBaseStructure.TIM_ClockDivision=TIM_CKD_DIV1; , y# p! C$ c6 {$ w4 [8 h: e( F
       
3 T  B  z4 \& M, Q* P- W- p        TIM_TimeBaseInit(TIM4,&TIM_TimeBaseStructure);//初始化定时器143 t' H! c% W9 y3 E
       
5 y6 {' v/ O! T0 P& n, {        //初始化TIM14 Channel1 PWM模式         * M+ h0 v+ ^+ d0 W: l1 q
        TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1; //选择定时器模式:TIM脉冲宽度调制模式2/ t8 i4 e( H2 c
        TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; //比较输出使能
( E* P3 j9 H) I9 W( }% l        TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_Low; //输出极性:TIM输出比较极性低6 C: W) W" I; z9 }8 Q, Z7 W
        TIM_OC1Init(TIM4, &TIM_OCInitStructure);  //根据T指定的参数初始化外设TIM1 4OC1
: j7 p1 J8 }! y( N& q" _7 L$ y
3 Y9 C+ z9 S( y9 x

$ I4 f! V: }+ C3 G' t2 i        TIM_OC1PreloadConfig(TIM4, TIM_OCPreload_Enable);  //使能TIM14在CCR1上的预装载寄存器
! S4 b0 w. }8 A' s& U) C 4 Y6 X# d( r1 P5 @3 @
  TIM_ARRPreloadConfig(TIM4,ENABLE);//ARPE使能 ; M; O; ~# d2 c' k
       
: ~; I- W  v/ X4 W" z$ l        TIM_Cmd(TIM4, ENABLE);  //使能TIM14
% R1 D9 b+ W, R+ K
  \: O$ I4 ^. q! o: P6 k! t                                                                                  4 ^# f- @/ ]3 ~' Q
}  
2 c7 {: k1 u' W: I  ^
  l8 w+ e" f) q————————————————6 o9 e* V, _& w9 y" m0 |
版权声明:地板不会说谎( ~9 g: c6 r9 [# A- }

- W' m# g  X+ L5 B0 O
收藏 评论0 发布时间:2023-1-17 21:00

举报

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