ST的开发库,在开始的系统初始化里调用了系统时钟滴答的初始化,这样就产生了TICK,然后整个开发的包里驱动很多有时间有关的都
; g. P$ d3 K7 ~7 O& ?# L调用了HAL_GetTick函数,做基于时间的判断。
5 r5 G7 \& p9 D1 H( V' G- B) \现在在我的项目里,我不想有这一个中断,因为我的系统中断很多,不想再要多余的中断,8 }5 F& x8 o) V/ f
9 r4 m+ c- L0 a, j: u所以我就关掉了systick,这会影响我的驱动函数吗?3 i5 _5 x% L6 h, j. M4 y! Z
9 B5 E' ]/ L& P! ] G3 L( q+ n
' f2 r: C! y& M' j' m( p# D
4 s- ?* A1 }9 \$ M5 D. i; w6 Z' s |
我看到驱动中有很多地方调用这个函数与其他的时间进行比较,我这个不使用的话,就是0,还是很担心,您是否有其他的资料有说明这个地方的?
不过HAL_IncTick和HAL_GetTick都是__weak函数,你可以自己实现它们的功能。! N& E1 Z0 V i# {
不过一定要实现,不然HAL库就废了。
我看了很多驱动的超时都是基于这个TICK判断的,但是如果我没有这个时钟,get tick就是0, 0 这个值不会影响功能,但是超时的作用没有了
systick可以开着,只是不开中断而已。
然后把HAL_GetTick()改造一下,读出systick计数值,把时间差算出来。
ST原厂的FAE能出来准确的回复吗