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

PWM输出无法点亮LED灯,高手帮忙看看是什么原因?

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
我用的单片机是:STM32F103C6T6A从网上买的核心板模块,LED灯拉到GPIOB>>>PB1口,下载程序后LED灯不亮,也不呼吸,是什么原因?' w8 x8 c# ^0 l  k- r0 {$ ]! ]" _. z
void PWM_Init(u16 arr,u16 psc)5 N, B  q$ K9 i! N$ `
{
5 ?4 [7 V2 I+ ]! I8 I1 x        GPIO_InitTypeDef GPIO_InitStructure;
! ]: x9 t3 L( r        TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
4 N# U6 _- W! y% c' [! n) O' O7 @        TIM_OCInitTypeDef TIM_OCInitStructure;
1 O6 Y/ B- @- l2 |. k8 v+ {  C0 H        RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1, ENABLE);6 R, L; j/ D, s2 D
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB| RCC_APB2Periph_AFIO, ENABLE);2 W" j  |; s$ v2 U. n
       
' e. ~/ J7 x5 \) c6 g4 ]  V* p        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1; //TIM2_CH31 O; R: B1 U1 h; \4 ^6 }
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;  //复用推挽输出. N, e) X2 c' n% a% N+ J! v5 S4 d
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;  g6 q4 |& b4 [7 [! z! v  X
        GPIO_Init(GPIOB, &GPIO_InitStructure);//初始化GPIO
! T# t! }4 Y: C& h5 G+ d. e1 R: g! w        ; z4 ?- E) z& X% v+ D, Z  a
       
' d0 v$ r7 H, P& D! O' A6 @) m        GPIO_PinRemapConfig(GPIO_PartialRemap_TIM1,ENABLE);//TIM1部分重映射
" ]  h$ Y9 v, l4 A* e, U  u       
/ T. g  J* y7 j6 k        TIM_TimeBaseStructure.TIM_Period = arr; //设置在下一个更新事件装入活动的自动重装载寄存器周期的值         计数到5000为500ms
$ A( u9 w9 ?8 s3 P7 M        TIM_TimeBaseStructure.TIM_Prescaler =psc; //设置用来作为TIMx时钟频率除数的预分频值  10Khz的计数频率  % X( W9 g" b0 P4 R6 k
        TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1; //设置时钟分割:TDTS = Tck_tim/ n6 I0 {1 n: q0 A8 s
        TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;  //TIM向上计数模式
9 |8 F5 [# |8 ~! d$ E$ H9 I8 X4 C        TIM_TimeBaseInit(TIM1, &TIM_TimeBaseStructure); //根据TIM_TimeBaseInitStruct中指定的参数初始化TIMx的时间基数单位/ |( W. |- m; u
       
  l1 I9 K& y& P3 H/ f7 x: p       
' y0 ]; Z6 C7 q        TIM_OCInitStructure.TIM_OCMode=TIM_OCMode_PWM2;
7 j  i) j. C" U2 M0 e% ~        TIM_OCInitStructure.TIM_OCPolarity=TIM_OCPolarity_High;
1 a  q+ n! O( W& r# ~% [. _1 X  G        TIM_OCInitStructure.TIM_OutputState=TIM_OutputState_Enable;, [0 m/ g2 v" W8 ?4 T5 W) {
        TIM_OC2Init(TIM1,&TIM_OCInitStructure);2 |" a9 E# |& D( v5 ~8 q- R2 V
        # e4 ?4 D* Z. s! \
        TIM_OC2PreloadConfig(TIM1,TIM_OCPreload_Enable);' Z* w% u) L; t) e' X* Q/ `; r
        TIM_Cmd(TIM1,ENABLE);8 u) v8 w: z% h8 m

$ U4 V" t8 i8 }! L) p- J0 U, P& S0 }3 @" d
}
, N8 g5 N7 y! Y* ~//主函数:
" R) E9 R0 {. x1 M2 lint main(void)
- I0 ?# q1 f5 I. p/ k( p{
; e, p4 s! E# {        u16 led0pwmval=0;! X3 ]8 Y5 Z# Q+ F# U! n% u$ w
        u8 dir=1;        # i- V* U0 n  |- C
        delay_init();
, l7 g- i) u3 z- _# S        PWM_Init(899,0);
8 ^( l  p" o  l  S2 q                 3 o& f0 |7 {9 ]$ u
           while(1)
8 z- A) e8 D' Q, H; ~( m/ ]0 u        {
; ?: v; A/ n2 V5 p                 delay_ms(10);         1 g5 O6 f0 {! z  s
                if(dir)led0pwmval++;( B2 B$ Y6 G" T
                else led0pwmval--;; Y: X. R+ {, A" D) ~7 _* x
* ?% k! R" U9 b2 j: j/ }& d; w
                if(led0pwmval>300)dir=0;
+ l8 m9 T- q/ m/ }0 N                if(led0pwmval==0)dir=1;                                                                                 
2 t1 {8 W: c5 {" }                TIM_SetCompare2(TIM1,led0pwmval);                   2 E3 `% G- a, v0 T5 |( b4 r1 o
        }         
- U: ], k( X1 [& l7 P. l       
/ U! {2 d" P! M9 o, l
+ n6 U5 `3 ^3 F" Z- }
( P* F- F! ]3 H7 R/ {5 \}
" o' Q! x% f' n5 n6 H' h
2 p- g8 l' W2 q; |# \, ^

该用户从未签到

3#
发表于 2022-11-16 15:28 | 只看该作者
延时10ms,时间太短了,你可以把时间变成100ms

点评

我换成共阳极LED灯后,可以点亮LED灯,但是不能呼吸,改成delay_ms(100)也是不能呼吸,是什么原因?  详情 回复 发表于 2022-11-20 11:11

该用户从未签到

4#
 楼主| 发表于 2022-11-20 11:11 | 只看该作者
SSWASD 发表于 2022-11-16 15:28  Y/ ]6 ?( n" Q( `& [- Z
延时10ms,时间太短了,你可以把时间变成100ms

( S' D5 l6 ~$ `我换成共阳极LED灯后,可以点亮LED灯,但是不能呼吸,改成delay_ms(100)也是不能呼吸,是什么原因?$ C  u, C1 S3 O& K2 V) o
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-6-13 09:56 , Processed in 0.078125 second(s), 27 queries , Gzip On.

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

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

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