OpenEdv-开源电子网

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

关于systick延时函数的时钟设置问题 求解答 急!!

[复制链接]

2

主题

11

帖子

0

精华

初级会员

Rank: 2

积分
50
金钱
50
注册时间
2016-2-26
在线时间
8 小时
发表于 2016-3-30 08:58:59 | 显示全部楼层 |阅读模式
3金钱
本帖最后由 icesword120 于 2016-3-30 13:45 编辑

是这样的 我的main函数里面设置了SysTick_Config(SystemCoreClock/1000)  此时systick时钟=syscoreclock=72M 根据正点原子大哥的教程这里设置的是1ms中断一次

如果我的延时函数里面设置了systick时钟为系统时钟的八分频SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK_Div8); //设置tick频率 总时钟八分频
fac_ms=SystemCoreClock/8000; //设置毫秒因子ticks数        
当我调用这个延时函数的并且初始化完毕的时候  systick时钟变成了9M  那系统时钟是不是变成8ms一次中断?求解答  谢谢!!

                           

最佳答案

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

不要用systick的中断来做延时。 如果用了中断,就不要再去设置systick的频率了。用时间摘取法,参考我们例程。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2016-3-30 08:59:00 | 显示全部楼层
不要用systick的中断来做延时。 如果用了中断,就不要再去设置systick的频率了。用时间摘取法,参考我们例程。
回复

使用道具 举报

2

主题

11

帖子

0

精华

初级会员

Rank: 2

积分
50
金钱
50
注册时间
2016-2-26
在线时间
8 小时
 楼主| 发表于 2016-3-30 09:28:31 | 显示全部楼层
在线等
回复

使用道具 举报

2

主题

11

帖子

0

精华

初级会员

Rank: 2

积分
50
金钱
50
注册时间
2016-2-26
在线时间
8 小时
 楼主| 发表于 2016-3-30 10:12:52 | 显示全部楼层
来人帮帮忙呀   
回复

使用道具 举报

15

主题

317

帖子

0

精华

高级会员

Rank: 4

积分
863
金钱
863
注册时间
2015-2-12
在线时间
354 小时
发表于 2016-3-30 10:53:35 | 显示全部楼层
我没有原子代码。但,你可以自己做个测试:如获得tick计数值,如1000个后弄个显示。自己就得到结论了。
回复

使用道具 举报

2

主题

11

帖子

0

精华

初级会员

Rank: 2

积分
50
金钱
50
注册时间
2016-2-26
在线时间
8 小时
 楼主| 发表于 2016-3-30 11:02:56 | 显示全部楼层
csmjmcc 发表于 2016-3-30 10:53
我没有原子代码。但,你可以自己做个测试:如获得tick计数值,如1000个后弄个显示。自己就得到结论了。

能说详细点吗  不是很懂    显示出来能证明什么呢?
回复

使用道具 举报

15

主题

317

帖子

0

精华

高级会员

Rank: 4

积分
863
金钱
863
注册时间
2015-2-12
在线时间
354 小时
发表于 2016-3-30 11:10:12 | 显示全部楼层
icesword120 发表于 2016-3-30 11:02
能说详细点吗  不是很懂    显示出来能证明什么呢?

在中断弄个计数器,若每1ms中断一次的话,计数1000个就是1s.
回复

使用道具 举报

2

主题

11

帖子

0

精华

初级会员

Rank: 2

积分
50
金钱
50
注册时间
2016-2-26
在线时间
8 小时
 楼主| 发表于 2016-3-30 11:25:08 | 显示全部楼层
本帖最后由 icesword120 于 2016-3-30 13:44 编辑
csmjmcc 发表于 2016-3-30 11:10
在中断弄个计数器,若每1ms中断一次的话,计数1000个就是1s.

我就是想知道用了那个延时函数 系统的时钟会不会变成8ms一次中断?  
回复

使用道具 举报

2

主题

11

帖子

0

精华

初级会员

Rank: 2

积分
50
金钱
50
注册时间
2016-2-26
在线时间
8 小时
 楼主| 发表于 2016-3-30 13:46:37 | 显示全部楼层
没有人知道吗            
回复

使用道具 举报

2

主题

11

帖子

0

精华

初级会员

Rank: 2

积分
50
金钱
50
注册时间
2016-2-26
在线时间
8 小时
 楼主| 发表于 2016-3-30 14:14:06 | 显示全部楼层
谁能帮帮我啊               
回复

使用道具 举报

2

主题

11

帖子

0

精华

初级会员

Rank: 2

积分
50
金钱
50
注册时间
2016-2-26
在线时间
8 小时
 楼主| 发表于 2016-4-5 15:00:38 | 显示全部楼层
正点原子 发表于 2016-3-30 08:59
不要用systick的中断来做延时。 如果用了中断,就不要再去设置systick的频率了。用时间摘取法,参考我们例 ...

非常详细 懂了!感谢原子大哥
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

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

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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