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

关于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扩展软件包
关注我们
st-img 微信公众号
st-img 手机版