AHB CLK = SYSCLK;
APB1 CLK = SYSCLK/2;
APB2 CLK = SYSCLK;
PLL CLK = SYSCLK;
常用到的还有SysTick时钟,由AHB时钟分频而来,要么=AHB,要么1/8AHB。
SysTick在uCOS操作系统中有着重要的作用,在操作系统中作为定时模块使用,其常用来产生一个准确的定时器中断,是操作系统的“心脏”,可以用来做任务调度等工作。
通常将SysTick中断的优先级设置为最高,但要注意,其设置方法与库函数的结构体初始化方法不同,而是需要使用core_M3.h中的NVIC_SetPriority()函数。
stm32的中的中断可以做嵌套,理论上嵌套一共有4位控制,共有5中模式
(0)4位全为调用优先级
(1)第一位为抢占式优先级,后三位为调用优先级
(2)2 2
(3) 3 1
(4)4 0
抢占式优先级用法:当一个低抢占式优先级中断正在执行时,如果有一个高抢占式优先级的任务发生,那么当前中断任务会被中断,转而执行更高优先级的中断,待高执行完后,再回头执行原来的低优先级中断服务程序。
调用优先级:只有当两个中断同时发生时,并且此时二者的抢占式优先级一样时,调用优先级高的中断先执行。
数字越小,优先级越高。理论上一共有16中中断优先级设定方法,但是一个stm32的所有引脚都可以配制成外部中断。当程序中中断个数多余16个时,就一定存在两个优先级设定情况是同一种的情况。
boot0 boot1引脚:用于设置stm32 的启动方法。
boot0 boot1 启动方式
0 0 FLASH
0 1 FLASH
1 0 系统bootloader
1 1 SRAM(通常用于调试程序)
当我们使用ISP下载程序的时候,应该把boot0 置1 boot0 置0
完了之后需要运行程序,还需要把boot0 置零以使其从flash启动程序。