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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
我用的单片机是:STM32F103C6T6A从网上买的核心板模块,LED灯拉到GPIOB>>>PB1口,下载程序后LED灯不亮,也不呼吸,是什么原因?
% i! W8 T" K. v1 ?% Q" z& Rvoid PWM_Init(u16 arr,u16 psc)
! A$ [- \. ~4 K+ ?{
8 C: x4 ^- i4 T" h  b9 N        GPIO_InitTypeDef GPIO_InitStructure;
- z) p' n5 [. |9 t' B# `. N0 u. v        TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
: J: R7 h5 i" x1 d! V2 n% W4 l        TIM_OCInitTypeDef TIM_OCInitStructure;6 k- J/ ~0 L1 R+ b; ^5 n, s
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1, ENABLE);8 p1 F! y3 C* L. g( v& n
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB| RCC_APB2Periph_AFIO, ENABLE);
- Z4 c4 v8 r! U2 h  ~3 _        - H" C8 |( w7 Q: V) i7 R! k' p
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1; //TIM2_CH3* N, g- F; y; m" x2 _
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;  //复用推挽输出$ C5 B# t1 g5 K0 e3 y1 E+ p" h
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;  V0 K+ g( [8 f5 W; O6 y
        GPIO_Init(GPIOB, &GPIO_InitStructure);//初始化GPIO
3 L8 C" z; z$ G+ i) [        # d; N$ G0 b3 ~; G
        ; \! b3 L, ^* f  i5 y0 o# l6 j
        GPIO_PinRemapConfig(GPIO_PartialRemap_TIM1,ENABLE);//TIM1部分重映射
) ?: ~0 J% t$ i$ L        # x, O2 ?& ~, z6 R
        TIM_TimeBaseStructure.TIM_Period = arr; //设置在下一个更新事件装入活动的自动重装载寄存器周期的值         计数到5000为500ms( k* Q5 x; S' O' S- `
        TIM_TimeBaseStructure.TIM_Prescaler =psc; //设置用来作为TIMx时钟频率除数的预分频值  10Khz的计数频率  . ]3 s# F0 |6 I% O8 O+ P( n( g
        TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1; //设置时钟分割:TDTS = Tck_tim. v! e! R4 O/ S  @
        TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;  //TIM向上计数模式
$ d/ B6 G9 Y( g% B+ F/ r        TIM_TimeBaseInit(TIM1, &TIM_TimeBaseStructure); //根据TIM_TimeBaseInitStruct中指定的参数初始化TIMx的时间基数单位
' x- l/ i$ a: g! z) z% G        . S+ M% F7 R8 Z6 P5 W
       
( x5 y* s4 U* q' |        TIM_OCInitStructure.TIM_OCMode=TIM_OCMode_PWM2;
' @$ i& ~3 A. a4 S7 E$ G0 {        TIM_OCInitStructure.TIM_OCPolarity=TIM_OCPolarity_High;+ i$ ]& b" E. g5 T/ s
        TIM_OCInitStructure.TIM_OutputState=TIM_OutputState_Enable;
! u3 d! |& A/ z  c0 }        TIM_OC2Init(TIM1,&TIM_OCInitStructure);5 T6 x* \1 J( N9 t7 M# A
        6 V2 y1 Q. j; O# u" n: X
        TIM_OC2PreloadConfig(TIM1,TIM_OCPreload_Enable);, |- r( A: _# L, ^" v
        TIM_Cmd(TIM1,ENABLE);
3 E; m  V  g) s2 @5 N7 o
' J1 X4 U+ ?/ C. S& v1 }- {1 ^  t8 u! s& e2 ]  j$ U: g3 v0 P
}3 g0 j* K; f4 D% |5 a# _9 d  n
//主函数:
% {3 ]8 C' T* S( R9 j! iint main(void)# u7 n! M& ?; M& G) {
{$ @  L" h, X4 s; N$ _8 l7 i/ z
        u16 led0pwmval=0;
; d, Z# E8 b- ^4 p1 b! g        u8 dir=1;       
, i  P: y" Y3 I5 w. S2 J5 d        delay_init();  Z% S3 `, Q! p! r/ H8 N
        PWM_Init(899,0);+ ^8 i! l+ g5 G4 m( Q) L# Y
                 
2 G% b# l( q: h% L4 `  U           while(1)  t7 p- P5 K: Q/ i9 V
        {  _- A5 J0 \( X4 s
                delay_ms(10);         
/ N% {4 n) h3 q7 q& E                if(dir)led0pwmval++;& y0 g/ b4 x0 |% S) X& m
                else led0pwmval--;; C* Z  s2 x- W- u
/ d+ m+ j$ }1 q9 J5 ]. R3 ^
                if(led0pwmval>300)dir=0;
$ f7 S' `, M  }' R/ y" ^0 |                if(led0pwmval==0)dir=1;                                                                                 & i  Y/ B5 i$ y: f
                TIM_SetCompare2(TIM1,led0pwmval);                   * Y+ F* h( j7 u, T' t$ ]0 L
        }         
0 v8 M. C# V2 U  ~" P0 |  U5 k2 N        9 U  R0 Y. ?. y/ {6 l

# H& N% x5 y# q  o: K5 @. V% z. a7 t- ^( a
}& O1 p. Q# D  ^' ~, d2 ?3 s' @2 j
; i/ m+ \7 \- @3 W7 O2 _: h

该用户从未签到

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! v2 J: H0 k  y' w4 c4 k+ g
延时10ms,时间太短了,你可以把时间变成100ms

5 d2 c& x: G2 G: }  P5 t) Q; n* B我换成共阳极LED灯后,可以点亮LED灯,但是不能呼吸,改成delay_ms(100)也是不能呼吸,是什么原因?
- D4 C7 ^4 [: t* \! q& D% R, o
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-8-3 06:31 , Processed in 0.109375 second(s), 24 queries , Gzip On.

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

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

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