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

[复制链接]
3991|31
 楼主| 肥羊 发表于 2018-4-10 16:04 | 显示全部楼层 |阅读模式
STM32设置PWM输出是时候少一下波形


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

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

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

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

  31.   TIM_ClearFlag(TIM3, TIM_FLAG_Update); //清除溢出中断标志
  32.   //TIM_ITConfig(TIM3,TIM_IT_Update,ENABLE);
  33.   
  34.   TIM_Cmd(TIM3, ENABLE);//使能TIM3     
  35.   
  36. }
 楼主| 肥羊 发表于 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 | 显示全部楼层
少一下波形什么意思啊?
 楼主| 肥羊 发表于 2018-4-10 16:11 | 显示全部楼层
 楼主| 肥羊 发表于 2018-4-10 16:11 | 显示全部楼层
mmuuss586 发表于 2018-4-10 16:07
少一下波形什么意思啊?

你看一下图片
 楼主| 肥羊 发表于 2018-4-10 16:26 | 显示全部楼层
自己给自己顶上去
香水城 发表于 2018-4-10 16:48 | 显示全部楼层
1、检查下输出管脚有无跟其它复用的情况存在;
2、如果只是这个定时器工作,没别的会影响到它,换个示波器看看;
mmuuss586 发表于 2018-4-10 16:54 | 显示全部楼层

主要2种可能:
1、程序上操作了PWM输出;
2、示波器问题:调下示波器部分显示看看
 楼主| 肥羊 发表于 2018-4-10 17:28 | 显示全部楼层
香水城 发表于 2018-4-10 16:48
1、检查下输出管脚有无跟其它复用的情况存在;
2、如果只是这个定时器工作,没别的会影响到它,换个示波器 ...

可能是示波器问题
zhuotuzi 发表于 2018-4-12 15:05 | 显示全部楼层
出现的有规律吗
hugoyueb123 发表于 2018-5-12 09:59 | 显示全部楼层
我的也是丢方波,大约两个周期,跟上面的现象差不多,怎么回事呀,刚开始捣鼓这玩意
sdCAD 发表于 2018-5-12 21:53 | 显示全部楼层

这个的间隔是多少
fengm 发表于 2018-5-12 21:54 | 显示全部楼层
有其他的程序影响吗?
kkzz 发表于 2018-5-12 21:54 | 显示全部楼层
后面有重新配置PWM吗
hudi008 发表于 2018-5-12 21:55 | 显示全部楼层
是隔一段时间就有吗
lzmm 发表于 2018-5-12 21:57 | 显示全部楼层

这个有影响吧。
minzisc 发表于 2018-5-12 21:58 | 显示全部楼层
缺少的时间是多长呢
selongli 发表于 2018-5-12 21:58 | 显示全部楼层
驱动的时候有影响吗?
xiaoyaodz 发表于 2018-5-12 21:59 | 显示全部楼层
你把完整的工程代码上传
您需要登录后才可以回帖 登录 | 注册

本版积分规则

38

主题

287

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部