OpenEdv-开源电子网

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

TIM1输出pwm波,频率正好为我设置频率的1/10,这是为什么?

[复制链接]

3

主题

8

帖子

0

精华

新手入门

积分
9
金钱
9
注册时间
2018-9-7
在线时间
6 小时
发表于 2018-9-18 13:48:09 | 显示全部楼层 |阅读模式
6金钱
void TIM8_PWM_Init(void)
{
TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure1;
TIM_OCInitTypeDef  TIM_OCInitStructure1;
  u16 crr1 = 19;



TIM_TimeBaseStructure1.TIM_Period = 39;
TIM_TimeBaseStructure1.TIM_Prescaler=71;
TIM_TimeBaseStructure1.TIM_ClockDivision=TIM_CKD_DIV1;
TIM_TimeBaseStructure1.TIM_CounterMode=TIM_CounterMode_Up;
TIM_TimeBaseInit(TIM8, &TIM_TimeBaseStructure1);

TIM_OCInitStructure1.TIM_OCMode = TIM_OCMode_PWM1;
  TIM_OCInitStructure1.TIM_OCPolarity = TIM_OCPolarity_High;

TIM_OCInitStructure1.TIM_OutputState = TIM_OutputState_Enable;
TIM_OCInitStructure1.TIM_Pulse = crr1;
TIM_OC1Init(TIM8,&TIM_OCInitStructure1);
TIM_OC1PreloadConfig(TIM8, TIM_OCPreload_Enable);

TIM_ARRPreloadConfig(TIM8, ENABLE);
  TIM_CtrlPWMOutputs(TIM8, ENABLE);
TIM_Cmd(TIM8, ENABLE);



这是我的初始化程序,我计算72M/(72*40)=25KHz,为什么测试出来是2.5Khz,这是为什么,是程序有问题还是晶振没起震?有人遇到过这种情况嘛?

微信图片_20180918134501.png
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

0

主题

192

帖子

0

精华

高级会员

Rank: 4

积分
582
金钱
582
注册时间
2017-6-2
在线时间
192 小时
发表于 2018-9-18 14:52:03 | 显示全部楼层
第三个参数应该是定时器时钟分频,那个宏定义找一下看看应该就知道了
回复

使用道具 举报

109

主题

5564

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
10572
金钱
10572
注册时间
2017-2-18
在线时间
1914 小时
发表于 2018-9-18 15:33:32 | 显示全部楼层
还没遇到过。你那板子晶振多少?
回复

使用道具 举报

3

主题

8

帖子

0

精华

新手入门

积分
9
金钱
9
注册时间
2018-9-7
在线时间
6 小时
 楼主| 发表于 2018-9-18 15:38:31 | 显示全部楼层
本帖最后由 QKYOO 于 2018-9-18 15:39 编辑
peng1554 发表于 2018-9-18 15:33
还没遇到过。你那板子晶振多少?

就标准的8Mhz ,我甚至发现这个板子整体的时钟都是1/10.我设置的100ms延迟,活活延迟1秒
回复

使用道具 举报

3

主题

1907

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4106
金钱
4106
注册时间
2018-8-14
在线时间
696 小时
发表于 2018-9-18 17:53:04 | 显示全部楼层
本帖最后由 edmund1234 于 2018-9-18 17:57 编辑

打开system_stm32F1xx.c
搜SystemCoreClock 被定义了什么值

#define SYSCLK_FREQ_72MHz  72000000  // 看是否这一句给屏蔽了
如果说以上没错的话, 就打开system_stm32F1xx.h
搜HSE_VALUE

#define HSE_VALUE    ((uint32_t)8000000)  // 看是否这一句给屏蔽了


回复

使用道具 举报

3

主题

8

帖子

0

精华

新手入门

积分
9
金钱
9
注册时间
2018-9-7
在线时间
6 小时
 楼主| 发表于 2018-9-18 18:26:25 | 显示全部楼层
edmund1234 发表于 2018-9-18 17:53
打开system_stm32F1xx.c
搜SystemCoreClock 被定义了什么值

谢谢你的耐心回答,我发现程序弄到开发板上没有问题。只有在我自己做的板上有问题,晶振也起振了,怀疑买到假芯片了。。。。
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-19 23:45

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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