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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
配置好,灯亮了,没有变化,是常亮状态,高手帮忙指点一下,多谢。单片机:STM32F103C8T6,系统时钟我选用48Mhz,不知道对不对?
8 e) ^. g! h/ ~8 r" D8 {+ \$ h3 E$ G- t
( r# c- U( q) @8 c2 h8 Y# ^4 K' T
主函数:, |, [& h" L: r7 b
int main(void)
& d, b/ z/ h# g7 _" K{! D" m! Q8 k/ Q6 O
        u16 led0pwmval=0;
6 }7 E& T; C5 ~7 M# x2 j        u8 dir=1;       
; F7 C) V6 \& M6 e& h        delay_init();
+ ^" M1 _0 t, H3 \9 s; z        PWM_Init(599,0);//不分频。PWM频率=48000000/600=80Khz
3 n' ]# J( j7 C/ v                 + S7 r8 |# F9 `7 r
           while(1)
: E8 d$ V* B9 a! R5 _        {
# P! b3 n9 [" f0 C                 delay_ms(500);         3 m% ~, \& V0 X9 ^' v( T4 h. H  e
                if(dir)led0pwmval++;# d+ q8 t' D7 l6 F0 w
                else led0pwmval--;
# D  ?2 R' }, h; S
2 f" O! H( N! N; c& g2 l8 I# L                 if(led0pwmval>300)dir=0;
# A7 f/ G& K4 z; G+ u# w                if(led0pwmval==0)dir=1;                                                                                 # p5 B# }' w% e) S( u
                TIM_SetCompare2(TIM1,led0pwmval);                  
* k  [# J, }% O" u) Y$ J3 V        }         
# ?+ v7 F' g# Q9 @3 A       
4 v* B& _3 B' ]8 j* h) m: y6 s
1 b' x- ]( I0 R9 a( L0 L6 ^4 q0 Q+ R
# [& D6 a: }* u; j2 c- W& k% N}( N1 I4 b5 y! k! Z2 K7 t

+ O  \7 f+ B$ [6 M" I2 |7 \& M
8 {6 l1 ^% n8 H* oPMW.C
: Z! D1 W$ A! H6 ~* I% [  zvoid PWM_Init(u16 arr,u16 psc)
% t! b2 z- l% n' i! ~4 G{
, ?. ]1 b4 j; ]) |        GPIO_InitTypeDef GPIO_InitStructure;; V& y. }" f- |( X  ?8 W: I) D  `
        TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;* n) m3 C& n" c$ }2 `
        TIM_OCInitTypeDef TIM_OCInitStructure;( ~& Q7 b2 ~. s; p4 I& M3 J
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1, ENABLE);; K7 _6 i7 K- w  M- X
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB| RCC_APB2Periph_AFIO, ENABLE);
$ k& I# t, d& T4 F" A       
& g1 n5 W: x( ^# G/ ~        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0; //TIM2_CH3
4 V$ ?; H) U" V: n        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;  //复用推挽输出- v0 p8 Z/ }7 Q8 t/ B2 C, s
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;1 o2 l& L7 B- L% t$ R& ?& j' {
        GPIO_Init(GPIOB, &GPIO_InitStructure);//初始化GPIO
% ^$ B1 O: F) [8 \$ Z+ N$ \6 _        //GPIO_ResetBits(GPIOB,GPIO_Pin_0);//置1
; \7 {/ n( M* N2 ]8 L( {. m       
6 k$ i; l( M1 U+ ]0 p, @3 @. f1 y        6 u( z4 r  K' D  R  u
        GPIO_PinRemapConfig(GPIO_PartialRemap_TIM1,ENABLE);//TIM1部分重映射  A9 E% X+ u6 N7 W+ [( d
        , P  S/ y: B* |* \9 M
        TIM_TimeBaseStructure.TIM_Period = arr; //设置在下一个更新事件装入活动的自动重装载寄存器周期的值         计数到5000为500ms8 ^4 G. w$ W3 {; {& k4 U1 \
        TIM_TimeBaseStructure.TIM_Prescaler =psc; //设置用来作为TIMx时钟频率除数的预分频值  10Khz的计数频率  
+ w& M; z3 |) D5 w: ^        TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1; //设置时钟分割:TDTS = Tck_tim
8 u( U  C3 a' q1 a        TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;  //TIM向上计数模式9 h! c$ b& k- [# t1 `& \
        TIM_TimeBaseInit(TIM1, &TIM_TimeBaseStructure); //根据TIM_TimeBaseInitStruct中指定的参数初始化TIMx的时间基数单位
3 e5 L. z7 B& P& I8 ~% T       
$ a# c5 R# C& v- Q5 O. Q        $ C: z2 O6 B# u" q8 e: O( U8 j
        TIM_OCInitStructure.TIM_OCMode=TIM_OCMode_PWM2;
/ b9 Y! ^5 M4 k" `2 o1 n. t4 t: d) I        TIM_OCInitStructure.TIM_OCPolarity=TIM_OCPolarity_High;
; J" M  D1 R/ p. D- ^( b+ o2 t, U        TIM_OCInitStructure.TIM_OutputState=TIM_OutputState_Enable;
/ N* ]/ y2 s# S2 b: n; S        TIM_OC2Init(TIM1,&TIM_OCInitStructure);  T- c: W+ {( H4 g* W! n5 k3 T
        + y! V- Z1 b! M
        TIM_OC2PreloadConfig(TIM1,TIM_OCPreload_Enable);
9 g% R! G5 p6 |5 A5 f. g& g        TIM_Cmd(TIM1,ENABLE);9 V+ T8 d* u& w9 u6 [$ L
# S. @8 u5 y0 [
2 D0 L' R  A+ ~8 r0 S0 i) ]
}
( Z. g9 ]9 D6 I  D" @; E3 L% K9 A" i$ B3 S3 J9 _! A
$ d, n" C; l6 n; j% p5 J

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

QQ截图20221127181202.png

该用户从未签到

2#
发表于 2022-11-28 10:23 | 只看该作者
请教大神帮忙解答。
) }( c& Z" q  z: p6 [# U
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-6-27 21:15 , Processed in 0.109375 second(s), 26 queries , Gzip On.

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

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

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