请选择 进入手机版 | 继续访问电脑版

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

stm32控制直流电机

[复制链接]
STMCU小助手 发布时间:2023-1-17 21:00
stm32控制直流电机; T, \: t, C5 @8 B2 T5 O/ H
#include "sys.h"6 l5 G9 T- d- @* m* }( R4 b/ b1 e
#include "DCmotor.h"' P, Y/ Z/ l) s1 L
void DCmotor_Init(void)
5 V5 Z2 U: S8 }3 f1 L/ M. `/ t. u{
- y9 U1 ^5 u- ]& v0 w6 ?        GPIO_InitTypeDef GPIO_InitStructure;1 N, [4 F+ v5 t$ f
  RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE);
; P- b4 K) u! b  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10| GPIO_Pin_11  ;; @# n1 P' t! p4 c( U
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;, ?( |6 l8 P# n) J5 Q3 s
  GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;# H0 D2 m' e6 P; E7 [9 r
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;1 D% s$ ], a2 |' A4 `! R$ k% |/ j
  GPIO_Init(GPIOA, &GPIO_InitStructure);6 G' B9 l, G; k) J9 N* D7 O! z0 Z) P
  GPIO_SetBits(GPIOA,GPIO_Pin_10);  x) {1 _" {7 v( z- e( a
        GPIO_ResetBits(GPIOA,GPIO_Pin_11);/ x- o0 ?9 g- s( D& p" c8 i1 u
        ; M/ }# K3 ]* V& m
        3 |4 [2 c  p. T  H
       
7 h% F3 m5 s. A& o8 N$ ?  RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB, ENABLE);
# R/ }4 Z, O9 d7 x$ R# q0 o, Y: W- o  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8  ;
) }+ K# b" G2 C9 N/ B. h* l! p- ~- `  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
7 O+ l; k- j$ b, y, g  GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;5 g. ^  W0 Z0 b
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;8 }6 w8 T/ E  A4 M4 h1 g, z5 D
  GPIO_Init(GPIOB, &GPIO_InitStructure);
, g; g: R" D; U0 c  
& f2 E9 d! k' P  _9 {0 L) N        , R7 X  e$ w+ s+ ]
}0 f2 j; Q% r: h
3 ~6 V3 u' w+ z. n! [' h
5 w( V" `. B( h" v0 f* f1 J4 n
+ ?1 h: o/ P( H6 |5 s: a

8 p1 \- ~0 e; I. Kvoid TIM4_PWM_Init(u32 arr,u32 psc): g2 v7 X2 W( x
{                                                          1 ]$ Y  J' X1 o& F/ d8 q1 i
        //此部分需手动修改IO口设置0 y0 `: I/ n# U7 k5 z* F. P( B
        - a3 t+ C2 a* `) B# A) u
        GPIO_InitTypeDef GPIO_InitStructure;
9 Z/ ?7 V9 ~7 ~) B+ E! o        TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;/ {- H8 j& e/ u- }  x7 W
        TIM_OCInitTypeDef  TIM_OCInitStructure;
% i3 N; L2 G' J        5 i2 }2 j) i0 S
        RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4,ENABLE);          //TIM14时钟使能   
* n) U1 I: O/ Z) J3 }        RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOD, ENABLE);         //使能PORTF时钟        5 {3 c  \  P' e# I
        ( H4 M1 K* m* J+ q& a3 B0 p1 u
        GPIO_PinAFConfig(GPIOD,GPIO_PinSource12,GPIO_AF_TIM4); //GPIOF9复用为定时器14* [- s" @, Q5 |' Z4 Y
        9 Z4 n' }% }3 m
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12;           //GPIOF94 {: s  k1 R. M7 n* J. g0 k8 x
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;        //复用功能  I/ H% k. N9 M
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;        //速度100MHz
- S3 e4 `" `$ }, c        GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;      //推挽复用输出
, w. o2 E+ e5 u2 i5 T* q) s        GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;        //上拉' }1 P$ y: q7 D: u
        GPIO_Init(GPIOD,&GPIO_InitStructure);              //初始化PF9
+ ?/ w& b9 n5 F5 ~          
5 T4 M$ k  n9 f        TIM_TimeBaseStructure.TIM_Prescaler=psc;  //定时器分频
9 g1 Q5 r* b0 {2 `7 g' p# p# x        TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up; //向上计数模式
* c! u3 w* E& V0 |8 l" r  J) p        TIM_TimeBaseStructure.TIM_Period=arr;   //自动重装载值0 ^% ^( v0 t3 `& P
        TIM_TimeBaseStructure.TIM_ClockDivision=TIM_CKD_DIV1;
9 x( b+ ?# k& u. J6 M! _8 m       
" {7 a% P; u) o" u( |1 x        TIM_TimeBaseInit(TIM4,&TIM_TimeBaseStructure);//初始化定时器14# k: z5 G8 d, f  A
       
2 R' @4 c, T7 }        //初始化TIM14 Channel1 PWM模式         ' j" O( Y& l6 \0 S. {, u
        TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1; //选择定时器模式:TIM脉冲宽度调制模式2) ^4 @6 v; V0 m$ D7 m( t" ^
        TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; //比较输出使能
. }6 a- h7 k4 Z$ R% q        TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_Low; //输出极性:TIM输出比较极性低
- q9 Q2 M4 R- X6 M' ], c# u: b        TIM_OC1Init(TIM4, &TIM_OCInitStructure);  //根据T指定的参数初始化外设TIM1 4OC1* R) P& g+ x$ @& @# P) U: n) E5 [

' ]3 G, _2 [+ G% X! O
' q/ \3 d8 w" D$ S
        TIM_OC1PreloadConfig(TIM4, TIM_OCPreload_Enable);  //使能TIM14在CCR1上的预装载寄存器. R8 h+ G8 O& {9 Z! C' C8 }! L
! S# i/ r$ v; ~0 g  g
  TIM_ARRPreloadConfig(TIM4,ENABLE);//ARPE使能
* I* P2 b, y) u+ @( x0 l       
4 \  Z* K' O0 Q! b! h) J        TIM_Cmd(TIM4, ENABLE);  //使能TIM145 p0 ]# {( Q' W$ m  Y- _

' l" H7 j3 ]  U2 [) y& @4 V( Q                                                                                  
3 N7 ]  \# a) e! j}  
3 A2 Q1 Q% @, C
- \/ w3 y7 g" a, F1 B4 O* Z1 b————————————————. |. O9 G8 \- v6 s. w
版权声明:地板不会说谎/ p; z2 r3 J2 ~" B8 k( O
! Z* g$ ^% z' X
收藏 评论0 发布时间:2023-1-17 21:00

举报

0个回答
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版