电子工程师技术服务社区
- 社区首页
- 下载
- 头文件可以直接调用.zip
资料描述
本帖最后由 donatello 于 2017-1-18 16:57 编辑
systick是系统滴答时钟,又叫做比较精确的delay函数,之所以说它比较精确,是相对于套两个for循环的粗延时函数而言的。systick实质上是系统时钟的八分频,stm32f103系列的主频是72m,八分频就是9m,既然是9m的时钟,那么从开始计数到计数9m次溢出就可以得到一个固定的时间长度值,这个时间长度值经过误差处理后就可以当作是1微秒,计数9m次这个过程重复做1000次就是1毫秒,systick的delay函数就是这么来的。systick是stm32小白必须掌握的延时手段,因为一来,stm32与单总线器件如ds18b20,dht11,红外接收头等器件通信必须用systick延时函数而绝对不能用粗延时函数,这是我经过早期对stm32的学习实测证明的;二来systick函数可以用在rtos(实时操作系统)上面生成节拍延时,节拍是任务时间计算和任务切换的最小时间片单位。systick虽然跟粗延时函数一样也占用cpu资源,但是占用率已经大大降低。注意,使用systick必须正确初始化系统时钟!