打印
[STM32F1]

stm32 PWM 输出PWM的时候会丢一下方波

[复制链接]
2906|31
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
肥羊|  楼主 | 2018-4-10 16:04 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
STM32设置PWM输出是时候少一下波形


//配置成PWM输出
void TIM3_Mode_Config(u16 f,u16 p)
{
   TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;//初始化TIM3的时间基数单位
   TIM_OCInitTypeDef  TIM_OCInitStructure;//初始化TIM3的外设
   NVIC_InitTypeDef NVIC_InitStructure;

  //打开TIM3的时钟
  RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE);

  //TIM3的时间基数单位设置(如计数终止值:999,从0开始 ;计数方式:向上计数)         
  TIM_TimeBaseStructure.TIM_Prescaler= (48 - 1); //时钟预分频数,时钟频率=72MHZ/(时钟预分频+1) 之后是12M   
  TIM_TimeBaseStructure.TIM_Period=STARTSPEED-1; //自动重装载寄存器的值/1ms 12KHZ         
  TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1 ;        
  TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
  TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure);

  NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1); //优先级分组(0~4), 抢占式为0,没嵌套
  NVIC_InitStructure.NVIC_IRQChannel = TIM3_IRQn; //制定IRQ通道
  NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;        //先占优先级
  NVIC_InitStructure.NVIC_IRQChannelSubPriority = 2;//从优先级
  NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
  NVIC_Init(&NVIC_InitStructure);
  
  //TIM3的外设的设置
  TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;        //TIM脉冲宽度调制模式1   
  TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;//这个暂时不知道,stm32固件库里没有搜到。应该是定时器输出声明使能的意思        
  TIM_OCInitStructure.TIM_Pulse = STARTSPEED/2;//设置了待装入捕获比较寄存器的脉冲值         
  TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_Low; //TIM输出比较极性高
  TIM_OC4Init(TIM3, &TIM_OCInitStructure);
         
  TIM_OC4PreloadConfig(TIM3, TIM_OCPreload_Enable);//使能或者失能TIMx在CCR1上的预装载寄存器
  TIM_ARRPreloadConfig(TIM3, ENABLE);        //使能TIM3重载寄存器ARR  

  TIM_ClearFlag(TIM3, TIM_FLAG_Update); //清除溢出中断标志
  //TIM_ITConfig(TIM3,TIM_IT_Update,ENABLE);
  
  TIM_Cmd(TIM3, ENABLE);//使能TIM3     
  
}
沙发
肥羊|  楼主 | 2018-4-10 16:05 | 只看该作者
file:///C:/Users/Administrator/AppData/Roaming/Tencent/QQ/Temp/704F00EB38C7E73B9B6B843C3B586772.jpg

使用特权

评论回复
板凳
肥羊|  楼主 | 2018-4-10 16:05 | 只看该作者
怎么上传图片的

使用特权

评论回复
地板
mmuuss586| | 2018-4-10 16:07 | 只看该作者
少一下波形什么意思啊?

使用特权

评论回复
5
肥羊|  楼主 | 2018-4-10 16:11 | 只看该作者
图片

704F00EB38C7E73B9B6B843C3B586772.jpg (171.6 KB )

704F00EB38C7E73B9B6B843C3B586772.jpg

704F00EB38C7E73B9B6B843C3B586772.jpg (171.6 KB )

704F00EB38C7E73B9B6B843C3B586772.jpg

使用特权

评论回复
6
肥羊|  楼主 | 2018-4-10 16:11 | 只看该作者
mmuuss586 发表于 2018-4-10 16:07
少一下波形什么意思啊?

你看一下图片

使用特权

评论回复
7
肥羊|  楼主 | 2018-4-10 16:26 | 只看该作者
自己给自己顶上去

使用特权

评论回复
8
香水城| | 2018-4-10 16:48 | 只看该作者
1、检查下输出管脚有无跟其它复用的情况存在;
2、如果只是这个定时器工作,没别的会影响到它,换个示波器看看;

使用特权

评论回复
9
mmuuss586| | 2018-4-10 16:54 | 只看该作者

主要2种可能:
1、程序上操作了PWM输出;
2、示波器问题:调下示波器部分显示看看

使用特权

评论回复
10
肥羊|  楼主 | 2018-4-10 17:28 | 只看该作者
香水城 发表于 2018-4-10 16:48
1、检查下输出管脚有无跟其它复用的情况存在;
2、如果只是这个定时器工作,没别的会影响到它,换个示波器 ...

可能是示波器问题

使用特权

评论回复
11
zhuotuzi| | 2018-4-12 15:05 | 只看该作者
出现的有规律吗

使用特权

评论回复
12
hugoyueb123| | 2018-5-12 09:59 | 只看该作者
我的也是丢方波,大约两个周期,跟上面的现象差不多,怎么回事呀,刚开始捣鼓这玩意

使用特权

评论回复
13
sdCAD| | 2018-5-12 21:53 | 只看该作者

这个的间隔是多少

使用特权

评论回复
14
fengm| | 2018-5-12 21:54 | 只看该作者
有其他的程序影响吗?

使用特权

评论回复
15
kkzz| | 2018-5-12 21:54 | 只看该作者
后面有重新配置PWM吗

使用特权

评论回复
16
hudi008| | 2018-5-12 21:55 | 只看该作者
是隔一段时间就有吗

使用特权

评论回复
17
lzmm| | 2018-5-12 21:57 | 只看该作者

这个有影响吧。

使用特权

评论回复
18
minzisc| | 2018-5-12 21:58 | 只看该作者
缺少的时间是多长呢

使用特权

评论回复
19
selongli| | 2018-5-12 21:58 | 只看该作者
驱动的时候有影响吗?

使用特权

评论回复
20
xiaoyaodz| | 2018-5-12 21:59 | 只看该作者
你把完整的工程代码上传

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

34

主题

255

帖子

1

粉丝