你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

关于SysTick 程序的疑惑

[复制链接]
数码小叶 提问时间:2015-1-8 10:05 /
看网上教程都是这样写的,有点不懂
  1. void SysTick_Init(void)
  2. {
  3.         /* SystemFrequency / 1000    1ms中断一次
  4.          * SystemFrequency / 100000         10us中断一次
  5.          * SystemFrequency / 1000000 1us中断一次
  6.          */
  7.         if (SysTick_Config(SystemCoreClock / 100000))
  8.   {
  9.     /* Capture error */
  10.     while (1);
  11.   }
  12. }
复制代码
其中F072中是这样定义的:uint32_t SystemCoreClock    = 48000000;而F1.3中,是72000000?
收藏 评论16 发布时间:2015-1-8 10:05

举报

16个回答
zfz0122 回答时间:2015-1-8 10:06:23
没用过072.。我觉得是因为主频不同吧。。103的是72M的
数码小叶 回答时间:2015-1-8 10:08:08
zfz0122 发表于 2015-1-8 10:06
没用过072.。我觉得是因为主频不同吧。。103的是72M的

嗯,所以我才没想通
wambob 回答时间:2015-1-8 10:10:21
072主频 48M,103主频72M,看看手册吧,网上的都是103的教程,下个I2C源码,错误百出,还是照着072的库文件看吧
wambob 回答时间:2015-1-8 10:11:55
本帖最后由 wambob 于 2015-1-8 10:37 编辑

CPU不一样,库文件里定义的uint32_t SystemCoreClock  也不一定相同

__STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks)
uint32_t ticks 就是滴答

数码小叶 回答时间:2015-1-8 10:16:36
wambob 发表于 2015-1-8 10:11
CPU不一样,库文件里定义的uint32_t SystemCoreClock  也不一定相同

你没理解我的意思,一个定义的是48,一个定义的是72 ,我刚说了啊
netlhx 回答时间:2015-1-8 10:29:31
主频不同,相应的分频系数也不同,这样才能实现与硬件无关
wambob 回答时间:2015-1-8 10:39:25
本帖最后由 wambob 于 2015-1-8 10:40 编辑
数码小叶 发表于 2015-1-8 10:16
你没理解我的意思,一个定义的是48,一个定义的是72 ,我刚说了啊


明白了啊,你不就是说两的时钟不一样吗,一个48,一个72,CPU不一样,怎么能一样,除非你超频
kevin0129 回答时间:2015-1-8 10:44:34
if (SysTick_Config(SystemCoreClock / 1000))
看着一句,如果是F0那么systic计数值就等于(48M/1000),当计数到这么多产生中断,而计一个数的时间为 SystemCoreClock(或者它的1/8),SystemCoreClock/(48M/1000)就等于1000Hz,即为1ms,对于f103同理还是1ms中断一次!
天天晓宇 回答时间:2015-1-8 10:46:03
【经验分享】STM32中实用的精确延时方法
https://www.stmcu.org.cn/module/ ... amp;fromuid=2091303
(出处: 意法半导体STM32/STM8技术社区)
  看看我的帖子,比这个好多了
12下一页

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版