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

关于stm32L476的TIM2 输出PWM波形

[复制链接]
alisa123 提问时间:2016-7-21 17:05 /
我配置TIM2的通道输出PWM波形,用寄存器操作的,但是怎么输出一直是个高电平,求高手指点,谢谢!配置程序如下:
void PWM_Timer2_Init(void)
{
GPIO_Pin_Init(PORTA,GPIO_Pin_3,GPIO_MODE_AF_PP,GPIO_PULLUP, GPIO_SPEED_HIGH,AF1);

TIM_TypeDef *Timer = TIM2;
/* Enable the Low Speed APB (APB1) peripheral clock  */
RCC->APB1ENR1 |= RCC_APB1ENR1_TIM2EN;            //__TIM2_CLK_ENABLE()
/* Timer2 control register 1 (TIMx_CR1) */
Timer->CR1 &= ~(TIM_CR1_DIR | TIM_CR1_CMS);    // Clear direcion and center aligned mode bits
Timer->CR1 |= TIM_COUNTERMODE_CENTERALIGNED1;
Timer->CR1 &= ~TIM_CR1_CKD;                             // clesr clock division bits
     Timer->CR1 |= TIM_CLOCKDIVISION_DIV1;          // division = 1
// Timer2 prescaler (TIMx_PSC)
Timer->PSC = TIM2_PRESCALER_VALUE;                 // initialize Timer2 prescale value = 1
   
// TIM2 capture/compare mode register 4  (TIMx_CCMR2)
Timer->CCMR2 &= ~TIM_CCMR2_CC4S;                // Capture/Compare Channel4 is configured as output
// Timer->CCMR2 &= ~TIM_CCMR2_OC4PE;           // Output Compare Channel4 Preload disabled, TIMx_CCR1 can be written at anytime
Timer->CCMR2 |=  TIM_CCMR2_OC4PE;                // Output Compare 4 preload enable
Timer->CCMR2 &= ~TIM_CCMR2_OC4M;               // clear Output compare 4 mode
Timer->CCMR2 |=  TIM_CCMR2_OC4M_1;              // OC1M: Output compare 4 mode = 6, PWM mode 1
Timer->CCMR2 |=  TIM_CCMR2_OC4M_2;

Timer->CCER  |=  TIM_CCER_CC4P;
Timer->CCMR2 &=  ~TIM_CCMR2_OC4FE;
Timer->CR2  &=  ~TIM_CR2_OIS1;

Timer->CCMR2 |=  TIM_CCMR2_OC4CE;               // Output Compare Ch4 Clear Enable
     
     // TIM2 auto-reload register (TIM2_ARR)           // initialize PWM frequency
     Timer->ARR = 699;                                        // initialize Timer2 Auto Reload Register
// TIM2 capture/compare register 4 (TIM2_CCR4)          // initialize duty cycle
     Timer->CCR4 = 200;                                       // initialize Timer2 Capture/Compare Register 4
     
// TIM2 control register 1 (TIMx_CR1)   
     Timer->CR1 |= TIM_CR1_CEN;         // Timer2 enable
     // TIM2 capture/compare enable register (TIMx_CCER)
Timer->CCER = Timer->CCER |=  TIM_CCER_CC4E;
}
收藏 评论1 发布时间:2016-7-21 17:05

举报

1个回答
alisa123 回答时间:2016-7-26 10:35:10
调好了,问题已经解决,配置程序没问题,程序里面的标志位没有使能导致的!谢谢各位关注!

评分

参与人数 1ST金币 +1 收起 理由
zero99 + 1 感谢提问及时处理

查看全部评分

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版