一、SysTick 系统定时器
SysTick 系统定时器功能框图
计数器的值 在 STK_VAL 实时可以查询的到 在中断产生后 会至位COUNTFLAG 将其置于 “1”
Systick 寄存器配置
AHB 总线时钟72 Mhz 在其除以8 后为9 MHz
RELOAD 为24位有效
CURRENT 若要实时监控的计数的值 则可以读取该寄存器
时间的计算
在内核中core_com 3.h 文件 显示
内核的中断·IRQn<0 则是配置内核寄存去 否则是配置NVIC 外设寄存器
提问:.SysTick 内核里面外设中断优先级 和 片上的外设优先级相比哪个高 ?
SysTick 中断优先级
1-STM32里面无论是内核还是外设都是使用4个二进 制位来表示中断优先级,
2﹣中断优先级的分组对内校和外设同样适用。当比较的时候,只需要把内核外设的中断优先级的四个位按照外设的中浙优先级来分组来解析即可即人为的分出抢占优先级和子优先级
二、定时器的多种计数方式
基本定时器 仅有支持向上计数
通用定时器 和高级计时器支持 向上计数 向下计数和 中央对齐 三种模式
PSC预分频器 /0时 为不分频 /1时 则为2分频 /2时为3分频 。。。。 以此类推
主模式触发DAC 功能
在使用DAC 时 在中断程序中 调用代码手动触发DAC转化 然后DAC 输出 但是会让主程序影响其他中断的响应
定时器级联
先触发 TIM3使用主模式将其更新事件映射到TRGO上 然后再接着接着再初始化TIM2 之后在初始化时钟为外部时钟1
这里选择 ITR2,对应的就是TIM3的TRGO,这样tim3的更行事件就可以驱动 TIM2 的时钟单元 即实现了定时器的级联
如果需要选择外部时钟 则要首选由ETR 引脚外部时钟2的输入,这一路最简单最为直接