OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4345|回复: 3

stm32定时器输出固定频率10kHZ,固定占空比,用示波器观察,为什么会出现占空比有飘动的现象?

[复制链接]

7

主题

34

帖子

0

精华

初级会员

Rank: 2

积分
179
金钱
179
注册时间
2015-1-3
在线时间
26 小时
发表于 2015-7-26 13:27:42 | 显示全部楼层 |阅读模式
5金钱
[mw_shl_code=c,true]void TIM1_PWM_Init(u16 arr,u16 psc) { GPIO_InitTypeDef GPIO_InitStructure; TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; TIM_OCInitTypeDef TIM_OCInitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1, ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10 | GPIO_Pin_11 ; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; //复用满负载输出为3.3V GPIO_Init(GPIOA, &GPIO_InitStructure); TIM_TimeBaseStructure.TIM_Prescaler = psc; TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; TIM_TimeBaseStructure.TIM_Period = arr; TIM_TimeBaseStructure.TIM_ClockDivision = 0; TIM_TimeBaseStructure.TIM_RepetitionCounter = 0; TIM_TimeBaseInit(TIM1, &TIM_TimeBaseStructure); TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM2; TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; TIM_OCInitStructure.TIM_OutputNState = TIM_OutputNState_Disable; TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_Low; TIM_OCInitStructure.TIM_OCNPolarity = TIM_OCNPolarity_High; TIM_OCInitStructure.TIM_OCIdleState = TIM_OCIdleState_Set; TIM_OCInitStructure.TIM_OCNIdleState = TIM_OCIdleState_Reset; TIM_OC3Init(TIM1, &TIM_OCInitStructure); TIM_OC4Init(TIM1, &TIM_OCInitStructure); TIM1->CCR3 = 0; //PA10 上理论能输出0.33V电压 误差0.1V TIM1->CCR4 = 0; //PA9 上理论能输出0.66V电压 误差0.1V TIM_Cmd(TIM1, ENABLE); TIM_CtrlPWMOutputs(TIM1, ENABLE); }[/mw_shl_code]

总有人是要赢的,那为什么不是我呢?
博客: http://mindthink.me
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

58

主题

6294

帖子

1

精华

资深版主

Rank: 8Rank: 8

积分
11554
金钱
11554
注册时间
2014-4-1
在线时间
1317 小时
发表于 2015-7-26 13:39:04 | 显示全部楼层
1、如果重新启动过定时器,要对 CNT 寄存器清零。

2、示波器问题?
回复

使用道具 举报

7

主题

34

帖子

0

精华

初级会员

Rank: 2

积分
179
金钱
179
注册时间
2015-1-3
在线时间
26 小时
 楼主| 发表于 2015-7-26 15:05:48 | 显示全部楼层
回复【2楼】xuande:
---------------------------------
1.没有重新启动
2,换了个示波器,依然有跳动。
3刷了原子定时器产生固定pwm的程序,只是改了频率(10M)和占空比,但是显示还有跳动
3.换了一块开发板,还有跳动
4.频率改为100hz,占空比保持不变。显示无跳动。正常
(跳动范围:本来应该输出55%稳定的占空比,但是示波器上有时显示55%,有时显示57%。)

这是什么问题呢?
总有人是要赢的,那为什么不是我呢?
博客: http://mindthink.me
回复

使用道具 举报

13

主题

611

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1929
金钱
1929
注册时间
2014-10-6
在线时间
625 小时
发表于 2015-7-26 15:56:30 | 显示全部楼层
调节一下示波器的触发电平看看!
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-19 11:55

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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