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

关于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管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版