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

ST的开发库驱动里很多用到了HAL_GetTick

[复制链接]
sky_han 发布时间:2018-12-19 09:27
ST的开发库,在开始的系统初始化里调用了系统时钟滴答的初始化,这样就产生了TICK,然后整个开发的包里驱动很多有时间有关的都
调用了HAL_GetTick函数,做基于时间的判断。
现在在我的项目里,我不想有这一个中断,因为我的系统中断很多,不想再要多余的中断,

所以我就关掉了systick,这会影响我的驱动函数吗?


12_04.jpg
收藏 评论11 发布时间:2018-12-19 09:27

举报

11个回答
toofree 回答时间:2018-12-19 10:04:50
不影响,只要程序中不使用HAL_Delay(),那就没关系。
sky_han 回答时间:2018-12-19 10:11:11
toofree 发表于 2018-12-19 10:04
不影响,只要程序中不使用HAL_Delay(),那就没关系。

我看到驱动中有很多地方调用这个函数与其他的时间进行比较,我这个不使用的话,就是0,还是很担心,您是否有其他的资料有说明这个地方的?
Dandjinh 回答时间:2018-12-19 10:42:33
当然影响,HAL的库都是用HAL_GetTick()来做超时的,你屏蔽了可以说基本就瘫痪了。
不过HAL_IncTick和HAL_GetTick都是__weak函数,你可以自己实现它们的功能。
不过一定要实现,不然HAL库就废了。
stm1024 回答时间:2018-12-19 12:28:21
GetTick应该不受影响吧,读取的应该是Systick的当前值。
QianFan 回答时间:2018-12-19 13:39:44
tanic 回答时间:2018-12-19 13:57:13
有影响,比如串口驱动中,超时就是通过GetTick来实现的,必须要有系统时基
sky_han 回答时间:2018-12-19 16:17:51
tanic 发表于 2018-12-19 13:57
有影响,比如串口驱动中,超时就是通过GetTick来实现的,必须要有系统时基

我看了很多驱动的超时都是基于这个TICK判断的,但是如果我没有这个时钟,get tick就是0, 0 这个值不会影响功能,但是超时的作用没有了
toofree 回答时间:2018-12-19 17:38:24
sky_han 发表于 2018-12-19 10:11
我看到驱动中有很多地方调用这个函数与其他的时间进行比较,我这个不使用的话,就是0,还是很担心,您是 ...

systick可以开着,只是不开中断而已。
然后把HAL_GetTick()改造一下,读出systick计数值,把时间差算出来。
sky_han 回答时间:2018-12-19 18:09:29
toofree 发表于 2018-12-19 17:38
systick可以开着,只是不开中断而已。
然后把HAL_GetTick()改造一下,读出systick计数值,把时间差算出来 ...

ST原厂的FAE能出来准确的回复吗
12下一页

所属标签

STM32团队

意法半导体微控制器和微处理器拥有广泛的产品线,包含低成本的8位单片机和基于ARM® Cortex®-M0、M0+、M3、M4、M33、M7及A7内核并具备丰富外设选择的32位微控制器及微处理器


最新内容

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