OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 6192|回复: 5

STM32 PWM启动不了

[复制链接]

18

主题

53

帖子

0

精华

初级会员

Rank: 2

积分
147
金钱
147
注册时间
2013-3-26
在线时间
0 小时
发表于 2013-3-26 09:20:25 | 显示全部楼层 |阅读模式
#include "stm32f10x_lib.h"
#include "stdio.h"
#include"delay.h"
#include"sys.h"
void RCC_Configuration(void);
void GPIO_Configuration(void);
void TIM_Configuration(void);
void PWM_Enable(void);  //启动PWM
void PWM_DISABLE(void);   //失能PWM
unsigned int Light_level;//调脉宽
vu16 PWM_level[5]={500,25000,35000,45000,55000};//PWM脉宽
int main(void)
{ //初始化
   RCC_Configuration();
   GPIO_Configuration();
   TIM_Configuration();
   Light_level=PWM_level[4];
   PWM_DISABLE();
   PWM_Enable();
   while(1)
    {
    
    }
}
void RCC_Configuration(void)
{  ErrorStatus HSEStartUpStatus;
   RCC_DeInit();
   RCC_HSEConfig(RCC_HSE_ON);
   HSEStartUpStatus=RCC_WaitForHSEStartUp();
   if(HSEStartUpStatus==SUCCESS)
   {
   RCC_HCLKConfig(RCC_SYSCLK_Div1);
   RCC_HCLKConfig(RCC_HCLK_Div1);
   RCC_HCLKConfig(RCC_HCLK_Div2);
   FLASH_SetLatency(FLASH_Latency_2);
   FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);
   RCC_PLLConfig(RCC_PLLSource_HSE_Div1,RCC_PLLMul_9);
   RCC_PLLCmd(ENABLE);
   while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY)==RESET);
   RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);
   while(RCC_GetSYSCLKSource()!=0x08);
   }
   RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3,ENABLE) ;
   RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOD,ENABLE);
}
void TIM_Configuration(void)//PWM
{
   TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
   TIM_OCInitTypeDef TIM_OCInitStructure;
   TIM_TimeBaseStructure.TIM_Period=60000;
   TIM_TimeBaseStructure.TIM_Prescaler=0;
   TIM_TimeBaseStructure.TIM_ClockDivision=0;
   TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up;
   TIM_TimeBaseInit(TIM3,&TIM_TimeBaseStructure);
   TIM_OCInitStructure.TIM_OCMode=TIM_OCMode_PWM1;
   TIM_OCInitStructure.TIM_OutputState=TIM_OutputState_Enable;
   TIM_OCInitStructure.TIM_OCPolarity=TIM_OCPolarity_High;
  TIM_OCInitStructure.TIM_Pulse=Light_level;//设置脉宽
   TIM_OC3Init(TIM3,&TIM_OCInitStructure);
}
void PWM_Enable(void)
{
   TIM_OCInitTypeDef TIM_OCInitStructure;
   TIM_OCInitStructure.TIM_Pulse=Light_level;//设置脉宽
   TIM_OC3Init(TIM3,&TIM_OCInitStructure);
   TIM_OC3PreloadConfig(TIM3,TIM_OCPreload_Enable);
   TIM_ARRPreloadConfig(TIM3,ENABLE);
   TIM_Cmd(TIM3,ENABLE);
}
void PWM_DISABLE(void)
{
   TIM_OC3PreloadConfig(TIM3,TIM_OCPreload_Disable);
   TIM_ARRPreloadConfig(TIM3,DISABLE);
   TIM_Cmd(TIM3,DISABLE);   
}
 void GPIO_Configuration(void)
 {
 GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_0;
    GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;
GPIO_Init(GPIOB,&GPIO_InitStructure);
 }
我想用STM32的TIM3CH3(PB0)产生PWM,但是PB0所连接的LED一直没亮,不管怎么调TIM_OCInitStructure.TIM_Pulse和TIM_TimeBaseStructure.TIM_Period,求解答!!![/mw_shl_code]
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

126

主题

820

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1683
金钱
1683
注册时间
2012-10-28
在线时间
62 小时
发表于 2013-3-26 09:40:25 | 显示全部楼层
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3,ENABLE) ;
   RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOD,ENABLE);
这个两个顺序换下  有点问题
坚持学习!就能成功!
回复 支持 反对

使用道具 举报

126

主题

820

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1683
金钱
1683
注册时间
2012-10-28
在线时间
62 小时
发表于 2013-3-26 09:41:29 | 显示全部楼层
请问你的映射有失能吗
坚持学习!就能成功!
回复 支持 反对

使用道具 举报

18

主题

53

帖子

0

精华

初级会员

Rank: 2

积分
147
金钱
147
注册时间
2013-3-26
在线时间
0 小时
 楼主| 发表于 2013-3-26 10:36:58 | 显示全部楼层
回复【3楼】1501697860:
---------------------------------
怪小弟才疏学浅,不理解阁下的意思
回复 支持 反对

使用道具 举报

18

主题

53

帖子

0

精华

初级会员

Rank: 2

积分
147
金钱
147
注册时间
2013-3-26
在线时间
0 小时
 楼主| 发表于 2013-3-26 10:37:32 | 显示全部楼层
回复【2楼】1501697860:
---------------------------------
还是没什么反应
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-3-26 16:35:50 | 显示全部楼层
可以软件仿真,看看寄存器内容,能看出很多问题来的。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-7-23 04:20

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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