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

SysTick时钟做延时

[复制链接]
andrewsss 提问时间:2019-1-8 10:36 /
在用SysTick时钟做延时程序时,我在F103的板子是用SysTick_Config()没问题,但是在L151的板子上发现堵这个函数这里了,但是我看了这个函数里面也没有while,怎么就阻塞了,SysTick时钟是Cortex-M3都有的吧?然后我在SysTick_Config()里面定位,发现是堵在这一步了SysTick->CTRL  = SysTick_CTRL_CLKSOURCE_Msk |                    SysTick_CTRL_TICKINT_Msk   |
                   SysTick_CTRL_ENABLE_Msk;
不懂为什么这一步不能执行,如果说没有这个寄存器的话,上面的SysTick->LOAD  = ticks - 1; 是可以执行的,问题到底出在哪里?
附上程序图:
360截图20190108100806665.jpg 360截图20190108100826473.jpg 360截图20190108102705814.jpg


收藏 评论16 发布时间:2019-1-8 10:36

举报

16个回答
五哥1 回答时间:2019-1-8 19:21:55
用HAL_Delay(0.1)试下
andrewsss 回答时间:2019-1-8 11:06:06
发现问题了,是SysTick->LOAD 的值设置的太小了,我改成64(SysTick_Config(64))就可以了,现在是2us中断一次,SysTick->LOAD还有最小值???
zjczm 回答时间:2019-1-8 12:03:26
本帖最后由 zjczm 于 2019-1-8 12:05 编辑

那就是你中断太快了。太快的话,别的事情没法干了。
微秒的延时,不如单独搞个定时器来实现吧。

评分

参与人数 1蝴蝶豆 +2 收起 理由
STMCU + 2

查看全部评分

watershade 回答时间:2019-1-8 12:15:22
systick主要是用来做时间基准的,一般就是1ms延时一次。尽管可以配置。也是建议你用专门的定时器,算一下你一个任务到底要多久。感觉32MHz要定us定时,其实处理不了啥任务。

评分

参与人数 1蝴蝶豆 +2 收起 理由
STMCU + 2

查看全部评分

butterflyspring 回答时间:2019-1-8 12:24:24
STM32有很多定时器,建议用外设定时器做timerx。 systic 通常做系统节拍用的,功能也比较单一,一般都不建议用户用来定时。 另外你的定时频率快,考虑用定时器的某些硬件功能。 否则中断进出消耗时间,再加上代码执行时间,根本做不了多少事情,甚至会影响其他代码执行的。 外设定时器在函数库中有很多例程,照着用也不复杂的

评分

参与人数 1蝴蝶豆 +3 收起 理由
STMCU + 3

查看全部评分

andrewsss 回答时间:2019-1-8 14:01:37
zjczm 发表于 2019-1-8 12:03
那就是你中断太快了。太快的话,别的事情没法干了。
微秒的延时,不如单独搞个定时器来实现吧。

我搞了个定时器,没法微秒定时啊,只能搞成毫秒,不然一直进定时器中断
andrewsss 回答时间:2019-1-8 14:04:09
watershade 发表于 2019-1-8 12:15
systick主要是用来做时间基准的,一般就是1ms延时一次。尽管可以配置。也是建议你用专门的定时器,算一下你 ...

我只是为了写个能进行微秒延时的函数,不关系其他的任务
andrewsss 回答时间:2019-1-8 14:05:56
butterflyspring 发表于 2019-1-8 12:24
STM32有很多定时器,建议用外设定时器做timerx。 systic 通常做系统节拍用的,功能也比较单一,一般都不建 ...

定时器能进行微秒计时吗,怎么做,我配置的只能最小是毫秒
watershade 回答时间:2019-1-22 11:09:00
五哥1 发表于 2019-1-8 19:21
用HAL_Delay(0.1)试下

你如果愿意回答请好好回答。不要通过灌水的方式来赚积分。谢谢
HAL_Delay的函数原型是:void HAL_Delay (__IO uint32_t Delay)

点评

相信大家的出发点都是希望帮助小伙伴解决问题,社区也会酌情进行奖励,不过管管觉得过于简短的回复可能帮不上忙,如果有完整一些的回复会更好  发表于 2019-1-24 10:21
12下一页

所属标签

相似问题

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版