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

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管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版