你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32L151 PWM 求助

[复制链接]
bruce.kuo 提问时间:2015-11-10 10:33 /
你好!
以下是我使用STM32L151開發PWM輸出的設定 , 但都沒有波形輸出 , 請問各位先進我的CODE哪裡有問題
謝謝

   TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStruct;
   TIM_OCInitTypeDef TIM_OCInitStruct;
   GPIO_InitTypeDef GPIO_InitStructure;
       
   RCC_HSICmd(ENABLE);
       
   while (RCC_GetFlagStatus(RCC_FLAG_HSIRDY) == RESET) {}
   RCC_SYSCLKConfig(RCC_SYSCLKSource_HSI);
                  
    // Enable clock for GPIOA
   RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA,ENABLE);
    // Enable clock for TIM4
   RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4,ENABLE);

   GPIO_StructInit(&GPIO_InitStructure);
   GPIO_PinAFConfig(GPIOA,GPIO_PinSource1,GPIO_AF_TIM4);
   GPIO_InitStructure.GPIO_Pin =  GPIO_Pin_1;   
   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
   GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
   GPIO_InitStructure.GPIO_Speed = GPIO_Speed_40MHz;   
   GPIO_Init(GPIOA,&GPIO_InitStructure);


   TIM_TimeBaseStructInit(&TIM_TimeBaseInitStruct);
   TIM_TimeBaseInitStruct.TIM_ClockDivision = TIM_CKD_DIV4;
   TIM_TimeBaseInitStruct.TIM_Period = 1000 - 1;  
   TIM_TimeBaseInitStruct.TIM_Prescaler = 240 - 1;
   TIM_TimeBaseInitStruct.TIM_CounterMode = TIM_CounterMode_Up;          
   TIM_TimeBaseInit(TIM4,&TIM_TimeBaseInitStruct);


   TIM_OCStructInit(&TIM_OCInitStruct);
   TIM_OCInitStruct.TIM_OutputState = TIM_OutputState_Enable;
   TIM_OCInitStruct.TIM_OCMode = TIM_OCMode_PWM1;   
   TIM_OCInitStruct.TIM_Pulse = 0;

   TIM_OC1Init(TIM4,&TIM_OCInitStruct);
   //TIM_OC2Init(TIM4,&TIM_OCInitStruct);

   TIM_Cmd(TIM4,ENABLE);          
          

收藏 评论7 发布时间:2015-11-10 10:33

举报

7个回答
zhoupxa 回答时间:2015-11-10 11:20:04
请参照DATASHEET和APPNOTES
aabird 回答时间:2015-11-10 14:07:27
确实。我也没有研究过,不过还是支持一下
废鱼 回答时间:2015-11-10 15:30:59
没有板子帮你测试,找了个例程参考一下。

PWM_Output.rar

下载

12.54 KB, 下载次数: 37, 下载积分: ST金币 -1

bruce.kuo 回答时间:2015-11-10 16:43:53
樓上的範例測試還是沒有波型出來
安臣 回答时间:2015-11-10 16:46:48
bruce.kuo 发表于 2015-11-10 16:43
樓上的範例測試還是沒有波型出來

可以看看我的帖子
呦、小魔 回答时间:2015-11-11 10:17:10
  TIM_OCInitStruct.TIM_Pulse = 0;
改成其他的数看看行不行,不要超过1000.
xieyuanfu 回答时间:2015-11-11 10:24:28
TIM_OCInitStruct.TIM_Pulse = 0;  这个是0 的吗?
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版