OpenEdv-开源电子网

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

求助原子哥,stm32f407开发板,测试pwm波时理论计算的周期与实际示波器测量周期不符的问题

[复制链接]

2

主题

5

帖子

0

精华

初级会员

Rank: 2

积分
52
金钱
52
注册时间
2015-10-19
在线时间
4 小时
发表于 2015-10-20 11:42:13 | 显示全部楼层 |阅读模式
5金钱
原子哥,

我计划生成一个频率为400Hz的pwm波,即周期应为2.5ms,我用的是TIM3的定时器,在初始化定时器模块时:预分频数为84-1,重装载数是2500-1,但实际用示波器观察pwm波的周期时为2.58ms,我心里想这与计算的偏差有点大,接近4%的误差,请问一下这个是正常的还是我设置出问题了。
用的是正点原子的开发。
部分代码如下
[mw_shl_code=c,true]//主函数部分 #include "drivers_usart.h" #include "drivers_oled.h" #include "drivers_keyboard.h" #include "drivers_pwm.h" bool view; void Delay(__IO uint32_t nCount); void Delay(__IO uint32_t nCount) { while(nCount--){} } int main(void) { TIM3_PWM_Init(2499,83); while(1) { }//end of while(1) } //TIM3_PWM_Init函数 void TIM3_PWM_Init(u32 arr,u32 psc) { GPIO_InitTypeDef GPIO_InitStructure; TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; TIM_OCInitTypeDef TIM_OCInitStructure; RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3,ENABLE); //TIM3 时钟使能 RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE); //使能porta时钟 GPIO_PinAFConfig(GPIOA,GPIO_PinSource6,GPIO_AF_TIM3); //GA6复用为TIM3 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6; //GPIOA6 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP; 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=TIM_CKD_DIV1; TIM_TimeBaseInit(TIM3,&TIM_TimeBaseStructure); TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1; TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; TIM_OCInitStructure.TIM_Pulse = 0xff; TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High; TIM_OC1Init(TIM3, &TIM_OCInitStructure); TIM_OC1PreloadConfig(TIM3, TIM_OCPreload_Enable); TIM_ARRPreloadConfig(TIM3,ENABLE); TIM_Cmd(TIM3, ENABLE); }// end of void TIM14_PWM_Init(u32 arr,u32 psc)[/mw_shl_code]

[mw_shl_code=c,true]/************************* PLL Parameters *************************************/ #if defined (STM32F40_41xxx) || defined (STM32F427_437xx) || defined (STM32F429_439xx) || defined (STM32F401xx) /* PLL_VCO = (HSE_VALUE or HSI_VALUE / PLL_M) * PLL_N */ #define PLL_M 8 //原来为25 #else /* STM32F411xE */ #if defined (USE_HSE_BYPASS) #define PLL_M 8 #else /* STM32F411xE */ #define PLL_M 16 #endif /* USE_HSE_BYPASS */ #endif /* STM32F40_41xxx || STM32F427_437xx || STM32F429_439xx || STM32F401xx */ [/mw_shl_code] [mw_shl_code=c,true]还有系统文件的HSE_VALUE已经设置为8000000.[/mw_shl_code] [mw_shl_code=c,true]万分感谢![/mw_shl_code]

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165371
金钱
165371
注册时间
2010-12-1
在线时间
2110 小时
发表于 2015-10-20 22:29:51 | 显示全部楼层
你直接修改我们的PWM例程试试.就修改PSC和arr,其他都别改,看频率.是否正常.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

2

主题

5

帖子

0

精华

初级会员

Rank: 2

积分
52
金钱
52
注册时间
2015-10-19
在线时间
4 小时
 楼主| 发表于 2015-10-21 12:03:54 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
原子哥,我直接修改的,然后发现还是存在一样的问题,有种误差变大的感觉,目标周期是2.5 ms,发帖之前是实际周期2.58 ms,发帖之后测过一次是2.6 ms,然后直接修改的例程中的参数,测过之后周期为2.64 ms,发现误差变大了,是不是8M的晶振出现了问题?
回复

使用道具 举报

2

主题

5

帖子

0

精华

初级会员

Rank: 2

积分
52
金钱
52
注册时间
2015-10-19
在线时间
4 小时
 楼主| 发表于 2015-10-21 12:08:56 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
出现这个问题是不是正常的?还是出现了异常?最可能是什么问题?
还有如果正常的话,误差大概是多少左右?
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165371
金钱
165371
注册时间
2010-12-1
在线时间
2110 小时
发表于 2015-10-21 21:22:41 | 显示全部楼层
回复【4楼】沉睡的牛仔:
---------------------------------
我找个时间测试下
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

2

主题

5

帖子

0

精华

初级会员

Rank: 2

积分
52
金钱
52
注册时间
2015-10-19
在线时间
4 小时
 楼主| 发表于 2015-10-23 22:09:33 | 显示全部楼层
回复【5楼】正点原子:
---------------------------------
原子哥,麻烦你别忘了,虽然不太影响使用,但是觉得很有问题
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-2-25 12:43

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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