STM32 CLK configuration

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启动程序。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章