1、SysTick系统定时器零死角玩转STM32M3系列淘宝:论坛: 扫描进入淘宝店铺主讲内容SysTick简介SysTick功能框图讲解参考资料:零死角玩转STM32“SysTick系统定时器”章节SysTick定时实验讲解SysTick简介SysTick:系统定时器,24位,只能递减,存在于内核,嵌套在NVIC中,所有的Cortex-M内核的单片机都具有这个定时器。SysTick功能框图重装载寄存器递减计数器STK_CLKSTK_LOADSTK_VAL72M或者9MUcounter在时钟的驱动下,从reload初值开始往下递减计数到0,产生中断和置位COUNTFLAG标志。然后又从reload
2、值开始重新递减计数,如此循环。SysTick寄存器SysTick定时时间计算p1-t:一个计数循环的时间,跟reload和CLK有关p2-CLK:72M或者9M,由CTRL寄存器配置p3-RELOAD:24位,用户自己配置SysTick定时时间计算p t = reload * ( 1/clk )p Clk = 72M时,t = (72) *(1/ 72 M )= 1USp Clk = 72M时,t = (72000) *(1/ 72 M )= 1MS时间单位换算: 1s = 1000ms = 1000 000 us = 1000 000 000nsSysTick寄存器SysTick寄存器结构体
3、在固件库文件:core_cm3.h中定义SysTick库函数SysTick配置库函数在固件库文件:core_cm3.h中定义SysTick库函数SysTick配置库函数在固件库文件:core_cm3.h中定义SysTick中断优先级1-SysTick属于内核里面的外设,他的中断优先级跟片上的外设的中断优先级相比,哪个高?2-systick中断优先级配置的是scb-shprx寄存器;而外设的中断优先级配置的是nvic-iprx,有优先级分组,有抢占优先级和子优先级的说法。SysTick中断优先级1-STM32里面无论是内核还是外设都是使用4个二进制位来表示中断优先级。2-中断优先级的分组对内核和外设同样适用。当比较的时候,只需要把内核外设的中断优先级的四个位按照外设的中断优先级来分组来解析即可,即人为的分出抢占优先级和子优先级。实验设计实验设计1-编写一个微秒延时函数2-编写一个毫秒延时函数THANKS零死角玩转STM32M3系列论坛: 淘宝:扫描进入淘宝店铺