在使用STM32的HAL库进行工程开发时,由于库本身自带的延时功能HAL_Delay只能实现微秒级的定时,无法满足工程实际需求,因此需要自定义一个精度更高的延时工具。
原理说明
分频器首先对系统时钟进行性分频,CNT计数器对分频后的tick值进行计数,只需要读取TIMx_CNT寄存器中的值,即可计算时长。
工程实现方法
1、在CubeMX中配制定时器
这里选择基本定时器 TIM6,
选择为激活状态,
预分频PSC设置为31,即在0–31之间计数分频。因为系统时钟频率为32MHz,分频后频率为1MHz,即每次计数累加1/1000 000秒 = 1us,
计数区间65535,单次定时最长65535微秒,
计数模式为up 向上计数,
是否自动重新加载,这里选disable, 一次计数满后不再重新计数
2、工程自动生成的定时器初始化代码