OpenEdv-开源电子网

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

定时器的相关问题

[复制链接]

12

主题

51

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
237
金钱
237
注册时间
2016-6-26
在线时间
29 小时
发表于 2016-11-16 16:42:10 | 显示全部楼层 |阅读模式
10金钱
本帖最后由 zzsj1990 于 2016-11-16 16:41 编辑

说明  stm32f103zet6   战舰版V3

想要深入了解一下定时器,所以写了下面一个小程序。

预分频值:72(即每1us计数一次)
计数周期:65535
计数方式:向上计数

在我的预想中:
1、当对TIM4的计数器置0后,立刻打印TIM4的计数器的值,结果应该为0。(这里的结果与预想中的一样
2、延时2us后,立刻打印计数器的值,结果应该为2。(这里的结果与预想中的不同)
3、再次将计数器置0,立刻打印计数器的值,结果应该为0.(这里的结果与预想中的不同
4、后面的结果与预想中的都不同。



请哪位大神能给我指一条路,让我有解答这个问题的方向。
程序1.jpg
串口结果.jpg

TIM4_trial.zip

7.73 MB, 下载次数: 60

这个是源程序

最佳答案

查看完整内容[请看2#楼]

u16 cnt1, cn2; TIM4->CNT=0; cnt1=TIM4->CNT; delay_us(2); cnt2=TIM4->CNT; printf("cnt1= %d , cnt2= %d",cnt1,cnt2);
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

3

主题

2170

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
5782
金钱
5782
注册时间
2013-11-22
在线时间
1212 小时
发表于 2016-11-16 16:42:11 | 显示全部楼层
u16 cnt1, cn2;
TIM4->CNT=0;
cnt1=TIM4->CNT;
delay_us(2);
cnt2=TIM4->CNT;
printf("cnt1= %d , cnt2= %d",cnt1,cnt2);
回复

使用道具 举报

50

主题

1805

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
6662
金钱
6662
注册时间
2016-5-29
在线时间
910 小时
发表于 2016-11-16 19:49:41 | 显示全部楼层
本帖最后由 操作系统 于 2016-11-16 19:53 编辑

明显方法错误.打印不要时间吗
回复

使用道具 举报

12

主题

51

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
237
金钱
237
注册时间
2016-6-26
在线时间
29 小时
 楼主| 发表于 2016-11-17 09:59:06 | 显示全部楼层
操作系统 发表于 2016-11-16 19:49
明显方法错误.打印不要时间吗

对,打印的时间确实被我忽略了。
回复

使用道具 举报

0

主题

2

帖子

0

精华

新手上路

积分
30
金钱
30
注册时间
2019-1-31
在线时间
11 小时
发表于 2016-11-20 13:18:00 | 显示全部楼层
我也是新人有点想法不知道对不对
造成这个问题可能有两个方面
1.你的时钟频率肯能不是标准的1us随意那个寄存器加的的值在2us时不是2,因为如果时钟频率是0.5us(举例)他过了你定的那个次数后再取出来就不是2而是4
2.和上边大神说的取出数据也要时间
回复

使用道具 举报

12

主题

51

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
237
金钱
237
注册时间
2016-6-26
在线时间
29 小时
 楼主| 发表于 2016-11-25 13:01:42 | 显示全部楼层
lisichao17 发表于 2016-11-20 13:18
我也是新人有点想法不知道对不对
造成这个问题可能有两个方面
1.你的时钟频率肯能不是标准的1us随意那个 ...

我的时钟频率是72MHz

定时器的时钟为1us        72 000 000/72。

我尝试了一下其他方法,最后能正常的得到我想要的1us

当然也有一点误差,但是没上面那么大。

回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-26 12:49

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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