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

stm32控制直流电机

[复制链接]
STMCU小助手 发布时间:2023-1-17 21:00
stm32控制直流电机) P$ P) Q: k' N, G( |
#include "sys.h"
" D" `9 z  o9 ^# f" y# {#include "DCmotor.h"+ J& V' O* c; f
void DCmotor_Init(void)5 [0 q5 P! B% M/ X
{
8 R7 J7 H6 B/ M. @; s' \        GPIO_InitTypeDef GPIO_InitStructure;# d. o2 X7 J# ?# ^
  RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE);- n4 Z/ H7 l+ J( t1 w" m) u
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10| GPIO_Pin_11  ;. `8 R& F8 q  i
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
/ e5 {1 N$ f5 Y) \6 S6 M  GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;8 Q5 I* V  p" v7 G. ?3 n4 X. c
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
* t$ P. R9 J5 ^% T, r7 F  c. k  GPIO_Init(GPIOA, &GPIO_InitStructure);
2 y! r1 w# N& k$ D/ j# b2 n  GPIO_SetBits(GPIOA,GPIO_Pin_10);" N* [7 Q" {! a/ D8 e
        GPIO_ResetBits(GPIOA,GPIO_Pin_11);
" R) V& k0 M  l6 f- d       
2 o5 I8 g, J0 l# W* _% X$ ~7 C        , K- r, X0 E# L* z9 M- y$ O+ t
        ' h7 [2 ]8 z5 C0 x; D
  RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB, ENABLE);
1 Y8 f* C, R/ ~5 H0 L( K# n  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8  ;$ E. _  j* C% O. L; H
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;' ?- O' U" |7 d4 @  Z$ K, K
  GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
) H5 n* B, w& v  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
5 h! T% _0 P) x4 G% b, S5 U: D* D  GPIO_Init(GPIOB, &GPIO_InitStructure);
0 R/ F( Z" v; a# o0 j+ \1 o: L  
) A% N! T/ q' P       
1 y4 s9 z9 [8 M}
3 W. |4 e5 u5 o) `1 s1 O# ?. E: e8 B& J; n) X
0 b8 F) X) F0 _: f

5 \0 A5 J/ V; }, m5 O

! v) O2 j$ j: j3 F# R' H& ~3 y7 `. `void TIM4_PWM_Init(u32 arr,u32 psc)
2 h: C, i$ A/ D( M* [0 U! }0 T( F{                                                          8 k$ ?  p% {; V8 s( t/ A+ @/ J
        //此部分需手动修改IO口设置3 ?" ~& _" @0 A8 e& n
          v  B- O0 P+ t8 A5 E$ |
        GPIO_InitTypeDef GPIO_InitStructure;
$ w7 B# N; y  S9 c7 `/ @        TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;
! m* P( \& B! O        TIM_OCInitTypeDef  TIM_OCInitStructure;! x6 }7 t2 N2 U2 M+ ]4 R
       
; u! W9 d9 `! `4 R; r' n        RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4,ENABLE);          //TIM14时钟使能    # {8 [, V4 K5 y, ^7 B, a
        RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOD, ENABLE);         //使能PORTF时钟       
8 [! h! O3 }0 \& Y          \# Q9 a7 `# n; r- U  W
        GPIO_PinAFConfig(GPIOD,GPIO_PinSource12,GPIO_AF_TIM4); //GPIOF9复用为定时器14- u$ r1 y. I1 |1 O+ T$ y& j; t" ]
        $ Y$ {; z' B9 [; P7 X
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12;           //GPIOF9* B, ?) s$ S$ U
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;        //复用功能
  r8 s$ N; A) `. U        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;        //速度100MHz/ p6 s1 H: ~3 b( s+ U9 Y4 n
        GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;      //推挽复用输出
! o1 f& `' d  |/ B3 Y        GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;        //上拉! w2 Y" ~2 \/ C0 p# F7 o) b" W
        GPIO_Init(GPIOD,&GPIO_InitStructure);              //初始化PF9
+ A1 m1 J, q- N/ n, ]& s& E1 `: E* G          . H! y: t* E! Y' c
        TIM_TimeBaseStructure.TIM_Prescaler=psc;  //定时器分频
7 ^4 P5 k: g% Y# h. U. s        TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up; //向上计数模式
1 M' X& f9 q( s6 y; m        TIM_TimeBaseStructure.TIM_Period=arr;   //自动重装载值5 N+ M' ~" P5 a+ g. _4 I! b0 n
        TIM_TimeBaseStructure.TIM_ClockDivision=TIM_CKD_DIV1; 4 a( ]4 Y3 H$ u/ h# M- q! k
       
0 k9 f* _9 Y' c( Y5 {        TIM_TimeBaseInit(TIM4,&TIM_TimeBaseStructure);//初始化定时器14
0 g6 G3 L& E& V* O! U+ c  k, y       
& X% O0 G" Q- }; v/ o! I        //初始化TIM14 Channel1 PWM模式         
. I& F3 c  i- m        TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1; //选择定时器模式:TIM脉冲宽度调制模式20 X! n0 F& i5 a6 u
        TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; //比较输出使能
: O3 p0 {; [7 Y6 T        TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_Low; //输出极性:TIM输出比较极性低
; E4 @4 |' h/ Y. E, ^0 C! V        TIM_OC1Init(TIM4, &TIM_OCInitStructure);  //根据T指定的参数初始化外设TIM1 4OC1
7 C4 L0 {7 `. y2 g
+ C0 F" z0 f" z% U7 n& x
5 l' E; }6 Z+ `- k% `) {
        TIM_OC1PreloadConfig(TIM4, TIM_OCPreload_Enable);  //使能TIM14在CCR1上的预装载寄存器
- f/ D1 \3 Z; @$ C! K) u- D " M' T& C* M5 a( K+ B/ ?$ `
  TIM_ARRPreloadConfig(TIM4,ENABLE);//ARPE使能 7 V: f; ?% I; r& D& B2 G) v
        ! B2 e( h) v4 L6 u$ j5 r* M
        TIM_Cmd(TIM4, ENABLE);  //使能TIM140 b9 Z& r( H8 Z$ l

7 o/ |1 W4 j2 n1 s                                                                                  2 {9 a4 }7 E3 t. ?  a- d
}  
$ _: _, V$ Z1 m! K8 A6 h" H" q  i
3 X( N' X6 X4 O————————————————0 P' l7 }4 O! Q) K/ S! J0 v' f
版权声明:地板不会说谎! N$ E# C1 k' |# e+ H) v2 r, [3 M! o- B
: z. Q* @% n8 H4 t2 [
收藏 评论0 发布时间:2023-1-17 21:00

举报

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