找回密码
 注册
关于网站域名变更的通知
查看: 453|回复: 1
打印 上一主题 下一主题

PWM调光控制LED灯,灯亮没有变化,怎么配置?

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2022-11-27 18:14 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
配置好,灯亮了,没有变化,是常亮状态,高手帮忙指点一下,多谢。单片机:STM32F103C8T6,系统时钟我选用48Mhz,不知道对不对?
/ D* n3 I2 }& l  {" r/ m; P( A# U# U

5 B, D  I3 Q" p! B主函数:. q0 `- P6 g$ x- B- \) s4 d  _
int main(void)+ I$ M* g* _# {: m* |$ {% \
{; N0 M3 `7 ~! a, c1 P; Q
        u16 led0pwmval=0;
3 C" b9 E, y5 F& r0 m; B        u8 dir=1;        ; k8 z+ i5 J) e# ]" i; T! s
        delay_init();5 Y0 p6 l- ~# V( c7 x7 M
        PWM_Init(599,0);//不分频。PWM频率=48000000/600=80Khz3 N" J7 L' k/ s1 \/ g9 m
                   n7 T9 g3 q; L) u$ b9 o* l
           while(1)2 Z" y7 `) j2 [- F' z
        {7 I1 s4 l7 d9 a4 A! X2 ~) A7 j* Z! W: F
                delay_ms(500);         8 h5 P- T9 ?: J9 a7 Q  g- L
                if(dir)led0pwmval++;6 N, l% K( B5 K+ A$ l3 ?5 ]
                else led0pwmval--;; E+ X% a7 `7 |, S( U: h# _& X

6 k7 T" n$ s; R# K$ {                 if(led0pwmval>300)dir=0;, u; U- G6 K3 `# E
                if(led0pwmval==0)dir=1;                                                                                   [2 G% v9 M4 _2 }$ p- F
                TIM_SetCompare2(TIM1,led0pwmval);                  
+ v5 T9 j+ N/ v: M) s2 U+ C        }         
0 U0 M; M5 J  q$ K' j/ K. k       
" c: _2 ~/ Y6 v8 z( z0 G( R9 d
) n' r; U+ w7 P8 X7 h1 u2 N& O4 d& ]8 D
}6 w9 F" g2 C5 G7 s

: ]2 p5 R7 y) u7 U0 V8 `! S7 s# G7 k9 o6 s! q0 J
PMW.C
. ]0 b* L+ s6 @6 ]$ E  Cvoid PWM_Init(u16 arr,u16 psc)
) h9 Y9 `3 r9 a{
( o+ f: b/ C: M5 c4 _* P( ~        GPIO_InitTypeDef GPIO_InitStructure;
# Z) O# }. A' B* p. B        TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
; k  U. h- a: V7 t! d& D2 i4 F1 O# y- r9 f        TIM_OCInitTypeDef TIM_OCInitStructure;/ j5 a$ q, A5 r! Y& G
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1, ENABLE);
7 z- |/ T, H! U) ^( l6 v        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB| RCC_APB2Periph_AFIO, ENABLE);
/ `- j1 h& V( r" l  T        5 _) r" l7 f, f3 t+ F) T; A
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0; //TIM2_CH3$ `" ~* p& D6 {( Z; U% d
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;  //复用推挽输出
, n3 l. B) s. r& N        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;) o% ~' p) W/ {: M
        GPIO_Init(GPIOB, &GPIO_InitStructure);//初始化GPIO6 y) F( Q5 p4 G8 x( Q6 Q7 d3 x9 O
        //GPIO_ResetBits(GPIOB,GPIO_Pin_0);//置1
1 F, F8 U* ?. R2 }) S8 \       
6 K+ J% F( p9 H1 f/ ~1 w: V       
0 g) e- v  G6 e% F$ f        GPIO_PinRemapConfig(GPIO_PartialRemap_TIM1,ENABLE);//TIM1部分重映射0 @% j: J" H; B2 O9 b0 e
          u0 y9 T, q6 h
        TIM_TimeBaseStructure.TIM_Period = arr; //设置在下一个更新事件装入活动的自动重装载寄存器周期的值         计数到5000为500ms
  B$ e3 h# c# A4 O' o4 e        TIM_TimeBaseStructure.TIM_Prescaler =psc; //设置用来作为TIMx时钟频率除数的预分频值  10Khz的计数频率  2 r" ^1 S3 O! `% x
        TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1; //设置时钟分割:TDTS = Tck_tim$ r3 {) e& L& ]" q, v+ ]& r9 @' F6 ^
        TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;  //TIM向上计数模式
( q3 V, Q. ^' z6 f. Y        TIM_TimeBaseInit(TIM1, &TIM_TimeBaseStructure); //根据TIM_TimeBaseInitStruct中指定的参数初始化TIMx的时间基数单位
8 P3 c  u' {8 m0 {: b       
$ b$ {# q$ f4 F+ F/ M4 d        . U+ f- R+ A8 g9 H. j) J) R. w) [
        TIM_OCInitStructure.TIM_OCMode=TIM_OCMode_PWM2;
2 V2 O& |: o! W5 c# Z        TIM_OCInitStructure.TIM_OCPolarity=TIM_OCPolarity_High;
6 [$ w8 K3 j% G9 `1 U        TIM_OCInitStructure.TIM_OutputState=TIM_OutputState_Enable;7 P* Q' ^( |5 d* l- _1 T+ }
        TIM_OC2Init(TIM1,&TIM_OCInitStructure);  F' _# X7 Z5 y$ `# Y
        : P$ B; c0 y5 G2 G! l
        TIM_OC2PreloadConfig(TIM1,TIM_OCPreload_Enable);
- s- p1 a4 p( Z3 ]3 }( }        TIM_Cmd(TIM1,ENABLE);: n: R* Y! y- x" t5 d
9 r+ v' f  x3 H, H( C$ q; g
- o" `- `+ A. k; J; l* t4 f# d
}
# I2 L. F% F. [" A; ?, E! _& @' p: p: k* B8 a
7 k  \( E4 c& i6 ]' F' N

QQ截图20221127181202.png (52.47 KB, 下载次数: 6)

QQ截图20221127181202.png

该用户从未签到

2#
发表于 2022-11-28 10:23 | 只看该作者
请教大神帮忙解答。
6 V0 S6 P0 ]9 y. z& d4 g  @
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-8-4 09:19 , Processed in 0.125000 second(s), 26 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表