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

stm32控制直流电机

[复制链接]
STMCU小助手 发布时间:2023-1-17 21:00
stm32控制直流电机* q9 w. {. E% R+ ~' ^6 T$ y
#include "sys.h"
/ ~. W' Q5 w6 L: L8 v7 s! T#include "DCmotor.h"
' z* U4 `& D* ?! R7 y% t. Z+ ?void DCmotor_Init(void)6 J; m( ?* k- J+ D
{
" e2 M+ n, S2 t/ j  O        GPIO_InitTypeDef GPIO_InitStructure;
( `. H) A- Y1 }" M) k  RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE);2 I# s2 o2 E  r6 E% T9 S4 V* {
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10| GPIO_Pin_11  ;. w$ P4 ?0 j. g# W" A, B" `- T5 [
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;9 {. e9 G7 z8 A
  GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;/ d7 r0 ?& v, x1 ~
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
0 {6 O- T) ~& |) `* K' d  GPIO_Init(GPIOA, &GPIO_InitStructure);; t. n- ~9 J4 h) b- e) y: B, X
  GPIO_SetBits(GPIOA,GPIO_Pin_10);* t+ l! Z+ d. j. ], {
        GPIO_ResetBits(GPIOA,GPIO_Pin_11);
( T$ K- R) o# P9 d8 Y* Q$ u       
" v6 \9 ?$ j5 _0 b0 V2 ~  x8 ]; I* i       
8 [6 |& O9 X6 w3 \1 X" U7 n        6 [. B8 {+ l! g' _; T/ _
  RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB, ENABLE);6 k6 x" z; v; g3 ~
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8  ;6 h! t- y2 R- z) t
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;3 `0 q- U  Y. p1 S& M
  GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
, {' n4 L: o4 Z  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
+ U% ?0 [8 o8 q  }  GPIO_Init(GPIOB, &GPIO_InitStructure);2 F. ~" |7 m& _( O/ B5 E/ x# m- G
  
. f: M9 c' R3 R" O# a2 o       
& E) |$ v' s! r, f) R/ s/ S% {( {}
% S+ ]  v: p( Y5 m1 b* M% \8 b& G) D4 Q4 z
2 G- ?# |# [) V2 |3 c9 ?8 ]
& X6 a+ t) ]( Y9 z" _; m* x

; r) v& p2 ?! O1 q$ Bvoid TIM4_PWM_Init(u32 arr,u32 psc)
9 X0 r& y+ m' m5 N{                                                          
. h1 m$ `# g7 w7 }9 \) t/ R' z        //此部分需手动修改IO口设置2 e! ^& ?) H. [$ V5 r. i
        . W0 H6 F* ^, j0 |6 U4 b; l; {
        GPIO_InitTypeDef GPIO_InitStructure;
- u# G6 l+ _5 E( N7 f* L# ]& r7 R        TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;
# }; K# q8 Y" s4 t/ }        TIM_OCInitTypeDef  TIM_OCInitStructure;
) T0 I" }7 r" ]! A  l# l        : c7 I$ ]4 x" w" `: O( ]
        RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4,ENABLE);          //TIM14时钟使能    9 x4 l6 ?4 y# M9 \
        RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOD, ENABLE);         //使能PORTF时钟       
  \' |' E5 \! X1 @' G$ c; h% u  l       
: o+ x# M5 K6 F' B5 ?7 `        GPIO_PinAFConfig(GPIOD,GPIO_PinSource12,GPIO_AF_TIM4); //GPIOF9复用为定时器14* `. K4 f/ ?9 u6 ]/ L9 G' z
        6 X2 f* n; M- A5 q
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12;           //GPIOF9) ~0 k9 B; v. x" H- B
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;        //复用功能" j* J" I; W" b% ^0 l  ]
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;        //速度100MHz2 G" Q" S5 e# g8 i# @0 u4 e, l) Q
        GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;      //推挽复用输出
. k  Y8 r: i$ E        GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;        //上拉
! [4 j5 L( O2 |" @. Z$ D        GPIO_Init(GPIOD,&GPIO_InitStructure);              //初始化PF94 h- a0 q# r$ l; K: p0 O
          6 r5 @  n- E) E  z6 [5 c
        TIM_TimeBaseStructure.TIM_Prescaler=psc;  //定时器分频% L& |% ?+ ~! U" m7 L' v
        TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up; //向上计数模式
5 c% o: `3 }/ v1 l        TIM_TimeBaseStructure.TIM_Period=arr;   //自动重装载值  v0 d# B+ b) ]; V
        TIM_TimeBaseStructure.TIM_ClockDivision=TIM_CKD_DIV1; , h5 x0 F9 M$ j3 p1 T) g' ^
        : g: y+ P* d7 l5 L' j8 \  k: f
        TIM_TimeBaseInit(TIM4,&TIM_TimeBaseStructure);//初始化定时器14# I: t% R) g! F$ W3 {3 E  o8 E3 q, l
        ( W) |2 M: z/ L& D* F; V( P
        //初始化TIM14 Channel1 PWM模式         
' j6 R3 a6 D' A& o) {3 n        TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1; //选择定时器模式:TIM脉冲宽度调制模式2& w# F  e0 w" L2 v% w% S% w" d2 h
        TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; //比较输出使能
% E# U8 C' ], `        TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_Low; //输出极性:TIM输出比较极性低
( j3 h; T: [* T$ s% O        TIM_OC1Init(TIM4, &TIM_OCInitStructure);  //根据T指定的参数初始化外设TIM1 4OC1) M/ N# Y& X% ~9 ^
) N1 ?/ l  s1 m' v. z! \7 ]1 [

* j/ `( N9 d- {. M  v0 n! c0 _        TIM_OC1PreloadConfig(TIM4, TIM_OCPreload_Enable);  //使能TIM14在CCR1上的预装载寄存器1 a9 i3 N9 @9 z1 O. F4 _) e
. ^+ L4 m0 W( j2 P! s4 ^; Y
  TIM_ARRPreloadConfig(TIM4,ENABLE);//ARPE使能
: E9 k  X+ p3 d! c' a; b       
) z, I7 A6 c: s: J- J9 J        TIM_Cmd(TIM4, ENABLE);  //使能TIM14$ i& ]6 H3 }7 z8 R$ p- j

3 d) {1 s" x7 Q4 N                                                                                  2 K8 J$ l- B+ g6 M
}  
% K2 C: G+ s& \2 k8 h/ z
& X* V/ g+ ]' u( d( m————————————————( t5 g' t; g3 P' B
版权声明:地板不会说谎
0 a: N7 n/ O2 P# G2 T1 `. L, F. A1 q9 d6 _0 G
收藏 评论0 发布时间:2023-1-17 21:00

举报

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