STM32-嵌入式学习笔记04-systick系统定时器

简介: STM32-嵌入式学习笔记04-systick系统定时器

systick系统定时器


系统定时器存在内核中,是24位的定时器,只能向下递减,嵌套在NVIC中

image.png

counter 在时钟的驱动下 在reload的初值开始向下递减计时到0,产生中断置位标志然后又从reload值开始重新递减计数,循环

定时时间计算

t=reload*(1/clk)clk=72M时,t=72*(1/72m)=1usclk=72M时,t=72000*(1/72m)=1msclk=72M时,t=72000000*(1/72m)=1s1s=1000MS=1000000US=1000000000NS

sysTick属于内核中的外设,他的中断优先级和外设的中断优先级相比,哪个高?


sysTick中断优先级配置的是scb->shprx寄存器


而外设的中断配置的是NVIC->iprx,有优先级分组和抢占优先级和子优先级的说法。


中断优先级在内核外设同样适用。


systick的使能函数:

static__INLINEuint32_tSysTick_Config(uint32_tticks)
{ 
//判断tick的值是否大于2^24,如果大于,不符合规则if (ticks>SysTick_LOAD_RELOAD_Msk)  return (1);  
//初始化reload寄存器的值                                                                    SysTick->LOAD= (ticks&SysTick_LOAD_RELOAD_Msk) -1;      
//配置中断优先级,配置为15,默认为最低优先级  NVIC_SetPriority (SysTick_IRQn, (1<<__NVIC_PRIO_BITS) -1);  
//初始化counter的值为0SysTick->VAL=0;                                         
//配置systick的时钟为72M//使能中断//使能systickSysTick->CTRL=SysTick_CTRL_CLKSOURCE_Msk|SysTick_CTRL_TICKINT_Msk|SysTick_CTRL_ENABLE_Msk;                    /* Enable SysTick IRQ and SysTick Timer */return (0);                                                  /* Function successful */}

编写微秒延时函数

voidSysTick_Delay_us(uint32_tus)
{
uint32_ti;
SysTick_Config(72);
for(i=0;i<us;i++)
    {
//当计数器的值时间到了后,CTRL寄存器位16会置1while(!((SysTick->CTRL)&(1<<16)));
    }
SysTick->CTRL&=~SysTick_CTRL_ENABLE_Msk;
}

利用中断来进行延时

voidSysTick_Init(void)
{
if(SysTick_Config(SystemCoreClock/100000))
while(1);
}
voidDelay_ms(__IOu32nTime)
{
uint32_tTimingDelay;
TimingDelay=nTime;
while(TimingDelay!=0)
TimingDelay--;
}
目录
相关文章
|
8天前
|
物联网 开发者 智能硬件
STM32:引领嵌入式系统新时代的微控制器
STM32:引领嵌入式系统新时代的微控制器
|
8天前
|
传感器 存储
STM32--TIM定时器(3)
STM32--TIM定时器(3)
STM32--TIM定时器(3)
|
8天前
|
编解码 芯片
STM32--TIM定时器(2)
STM32--TIM定时器(2)
|
8天前
|
传感器
STM32--TIM定时器(1)
STM32--TIM定时器(1)
|
6天前
|
缓存 网络协议 算法
[蓝桥杯嵌入式]hal库 stm32 PWM的使用(随时修改占空比,随时修改频率)
[蓝桥杯嵌入式]hal库 stm32 PWM的使用(随时修改占空比,随时修改频率)
|
8天前
|
传感器
STM32标准库外部中断和定时器知识点总结-2
STM32标准库外部中断和定时器知识点总结
|
8天前
|
传感器
STM32标准库外部中断和定时器知识点总结-1
STM32标准库外部中断和定时器知识点总结
|
8天前
|
内存技术 存储 Android开发
MCU最小系统电路设计(以STM32F103C8T6为例)-3
MCU最小系统电路设计(以STM32F103C8T6为例)
MCU最小系统电路设计(以STM32F103C8T6为例)-3
|
8天前
|
芯片
MCU最小系统电路设计(以STM32F103C8T6为例)-1
MCU最小系统电路设计(以STM32F103C8T6为例)
MCU最小系统电路设计(以STM32F103C8T6为例)-1