找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 8407|回复: 1
打印 上一主题 下一主题
收起左侧

关于STM32中pwm输出的占空比的一些问题

[复制链接]
跳转到指定楼层
楼主
本人正在做stm32的课程设计,其中用到输出pwm波的相关知识,但关于CCR寄存器的值对PWM波形的影响有一些不明白的地方,以下先上tim1的初始化代码
TIM_TimeBaseStructure.TIM_Period = 7199;
  TIM_TimeBaseStructure.TIM_Prescaler = 0
  TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1
  TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up
  TIM_TimeBaseStructure.TIM_RepetitionCounter = 0x00;
        TIM_TimeBaseInit(TIM1,&TIM_TimeBaseStructure);

        TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;               
  TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;     
  TIM_OCInitStructure.TIM_OutputNState = TIM_OutputNState_Enable;
  TIM_OCInitStructure.TIM_Pulse = DIY_Pulse;                           
  TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;
  TIM_OCInitStructure.TIM_OCNPolarity = TIM_OCNPolarity_Low
  TIM_OCInitStructure.TIM_OCIdleState = TIM_OCIdleState_Set;
  TIM_OCInitStructure.TIM_OCNIdleState = TIM_OCIdleState_Reset;
        TIM_OC1Init(TIM1, &TIM_OCInitStructure);


     其中DIY_Pulse的初始值为3599(即初始占空比为1/2).然后我在主函数中还设置了一个中断服务子程序(主要代码如下):

if(EXTI_GetITStatus(EXTI_Line6)!=RESET)
  {DIY_Pulse=DIY_Pulse-200;
                TIM1->CCR1=DIY_Pulse;
  EXTI_ClearITPendingBit(EXTI_Line6);}


可以看到中断发生时会将DIY_Pulse的值减200并更新到CCR中,根据书上的解释,当cnt的值计数到与ccr相同时电平会发生跳变,这里ccr的值减小,占空比应该是减小的,但实际上却是增大,不明所以,想问下大神们这是为什么。
另外就是,关于这句代码:TIM_OCInitStructure.TIM_OCNPolarity = TIM_OCNPolarity_Low  书上说这里设置为high就可以实现互补输出,但我却要设成low仿真时才能实现互补,也是不明所以。
附上仿真的波形。

1 2.JPG (27.5 KB, 下载次数: 44)

初始状态

初始状态

2 1.JPG (24.84 KB, 下载次数: 43)

发生中断后

发生中断后
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:368940 发表于 2018-7-11 10:45 | 只看该作者
ARR:自动预载寄存器,即定时器的计数周期。
            PWM的分母部分
        
CCR:寄存器,我们可以直接赋值,PWM的分
            子部分

CNT:能自动计数,记录当前的计数值

PWM模式1- 在向上计数时,一旦CNT<CCR1
时通道1为有效电平,否则为无效电平;
在向下计数时,一旦CNT>CCR1时通道1为无效
电平(OC1REF=0),否则为有效电平
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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