|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
我用的单片机是:STM32F103C6T6A从网上买的核心板模块,LED灯拉到GPIOB>>>PB1口,下载程序后LED灯不亮,也不呼吸,是什么原因?% f8 e6 N! J, t* K2 T
void PWM_Init(u16 arr,u16 psc)1 Q( e1 L; j# Y. p B# |0 v
{
6 }) g/ h9 d- W- P4 z4 v1 W GPIO_InitTypeDef GPIO_InitStructure;0 p }, p" g5 \9 a
TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;+ P2 j) T" `* c& n8 L g
TIM_OCInitTypeDef TIM_OCInitStructure; U8 X" A; o8 X, @ B6 K: l$ h
RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1, ENABLE);
L+ q! w# Z( @% h h$ K: N2 D RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB| RCC_APB2Periph_AFIO, ENABLE);
% B: s7 X; W& n) { # {: ^% o- M! w3 S1 U
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1; //TIM2_CH34 Q, x8 z1 J4 l$ n
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; //复用推挽输出# p2 q& Z/ ^- ~
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
" I3 A* t5 ^ {6 h* Y: n GPIO_Init(GPIOB, &GPIO_InitStructure);//初始化GPIO
( }9 V3 t( t9 b% y& v3 d; H7 {
) }5 f% u$ ^) A3 t$ ^
. {3 ]% p; y# S& ^5 a: e7 d$ P GPIO_PinRemapConfig(GPIO_PartialRemap_TIM1,ENABLE);//TIM1部分重映射4 ~* o8 h' S3 u" ?" O {
: o+ v2 y+ l( W- \
TIM_TimeBaseStructure.TIM_Period = arr; //设置在下一个更新事件装入活动的自动重装载寄存器周期的值 计数到5000为500ms/ D* A2 P# F, |1 ?' n
TIM_TimeBaseStructure.TIM_Prescaler =psc; //设置用来作为TIMx时钟频率除数的预分频值 10Khz的计数频率
: r' f) ?/ G i1 U9 v) W TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1; //设置时钟分割:TDTS = Tck_tim
: U1 d/ O1 {) d. a/ v# F, C8 g TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; //TIM向上计数模式& ~( @2 n' b0 G
TIM_TimeBaseInit(TIM1, &TIM_TimeBaseStructure); //根据TIM_TimeBaseInitStruct中指定的参数初始化TIMx的时间基数单位: Z* [# K5 G) B! G) c6 ^
7 O$ a) M5 {/ }8 { ; | D+ ]1 y8 \
TIM_OCInitStructure.TIM_OCMode=TIM_OCMode_PWM2;
( g+ f7 E' u6 A; j e; D$ M TIM_OCInitStructure.TIM_OCPolarity=TIM_OCPolarity_High;
5 p+ ~3 l2 o* r/ { TIM_OCInitStructure.TIM_OutputState=TIM_OutputState_Enable;: b' |+ c0 l3 E% B6 X, x0 O% g: r
TIM_OC2Init(TIM1,&TIM_OCInitStructure);% q# ~2 Z% K: T( }8 r6 G
' k" i7 ^9 |; e# m. L$ ?! o6 `& R! Q TIM_OC2PreloadConfig(TIM1,TIM_OCPreload_Enable);; P& Y' p- a$ Y. v! ]
TIM_Cmd(TIM1,ENABLE);
, M) S% v/ ~+ B; h, x/ U" w' x6 t7 t! r0 p# d
7 a+ Q! z+ F1 |& a3 U
}" `% ]' e& y2 v
//主函数:
4 b4 [* a5 l; x6 Z" H; lint main(void)
6 N( H# ?5 T0 i, P) B{
+ X7 G A' v# f, U* n u16 led0pwmval=0;+ S; b7 X6 V' I
u8 dir=1;
; J8 ^+ h9 I i1 g delay_init();$ h0 i- b3 h+ o% N( w# a
PWM_Init(899,0);
9 R/ f- X. X! A7 j: ?. k1 B ' z" N& v; m5 C* C, T
while(1)6 n6 q" `. W' n( d
{, U. @# R7 x* I
delay_ms(10); , K( k* ?: b) \. B$ e$ u& s Y# v, a
if(dir)led0pwmval++;6 s/ L6 e6 O& C% U# x( F0 c
else led0pwmval--;
) E. D! d* J$ j2 A+ F6 y K0 Z0 ^5 ]) @/ z( I
if(led0pwmval>300)dir=0;+ g* k, H( y n, d* I% E
if(led0pwmval==0)dir=1; ' l) F! q+ J9 Y5 G' N+ n
TIM_SetCompare2(TIM1,led0pwmval);
4 T% V9 b) p" O } ! l1 |/ Y/ A# k) T$ j. l0 M
$ i; O) \3 I" U
6 a1 m0 p( ?2 P* S. [: X' J* ^8 {$ _- i: N5 O: @" h8 O
}+ v( u* T4 m5 z
) ]2 D+ q, ?4 g# ^! b" ~
|
|