本帖最后由 6552918 于 2022-12-11 15:28 编辑
SysTick是ARM内核的一个功能,利用这个定时器,可以实现高精度延时。
我封装的延时函数就是使用这个定时器实现的,所有延时操作都是在delay.c和delay.h文件内。
delay.h内先关说明
使用时只需要在初始化时调用delay_init();就可以使用相关延时函数。
delay_init();内根据#define SYSTICK_INT_DELAY决定使用那种方式,默认使用中断方式
SysTick_Config函数在core_cm0plus.h内,而且不知道为什么,函数库里和SysTick相关的函数只有这么一点,所以只能支持中断模式。
因为查询模式的初始化需要调void SYSTICK_ClockSourceConfig(u32 SysTick_ClockSource)函数,但这款芯片的库文件没有相关文件,所以无法实现查询方式的SYSTICK延时
微妙延时函数
毫秒延时
总结,不知道是什么原因,函数库感觉很不健全,我在调试其他功能时,也有类似感觉,很多常用的函数都没有实现,希望原厂尽快完善一下。
delay.zip
(2.33 KB)
|