分享
发布时间:2017-10-18 15:50 电子爱好者网

stm32定时器中止装备

分享

                                              stm32的Cortex内核具有强壮的反常呼应体系,它把能够打断当时代码履行流程的事情分为反常( excepTIon)和中止( terryp),并把它们用二个表办理起来,编号为0~15的称为内核反常,而16以上的则称为外部中止(外,相对内核而言),这个表就称为中止向量表。

                                              而STM32对这个表从头进行了编列,把编号从-3至6的中止向量界说为体系反常,编号为负的内核反常不能被设置优先级,如复位( Reset)、不行屏蔽中止(NMI)、硬错误( Hardfault)。从编号7开端的为外部中止,这些中止的优先级都是能够自行设置的。

                                              STM32的中止如此之多,装备起来并不简单,因而,我们需求一个强壮而便利的中止控制器NVIC,NVIC是归于 Cortex内核的器材。

                                              stm32定时器中止装备

                                              stm32中止装备 装备STM32的中止只需求了解2个内容,装备4个变量即可。

                                              4个变量:

                                              NV|IC_ IRQChannel中止向量

                                              NVIC_ IRQChannelCmd使能/制止

                                              NVIC_ IRQChannelPreempTIon Priority抢占优先级

                                              NVIC_IRQChannelSub Priority呼应优先级

                                              两个内容:抢占优先级和呼应优先级

                                              抢占优先级

                                              抢占是指打断其他中止的特点,即因为具有这个特点,会呈现嵌套中止(在履行中止效劳函数A的进程中被中止B打断,先履行完中止效劳B再持续履行中止效劳A)。其特点编号越小,优先等级越高。

                                              呼应优先级

                                              呼应特点则应用在抢占特点相同的情况下,如果两个中止一起抵达,则先处理呼应优先级高的中止,再处理呼应优先级低的中止。其特点编号越小,优先等级越高。

                                              stm32定时器中止装备

                                              若内核正在履行c的中止效劳函数,则它能被抢占优先级更高的中止A打断,因为B和C的抢占优先级相同,所以C不能被B打断。但如果B和C中止是一起抵达的,内核就会首要呼应呼应优先等级更高的B中止

                                              抢占优先级和呼应优先级的数量由一个4位的数字来决议。

                                              第0组:一切4位用来装备抢占优先级,即NVIC装备的24=16种中止向量都是只要抢占特点,没有呼应特点。

                                              第1组:最高1位用来装备抢占优先级,低3位用来装备呼应优先级。抢占优先级(0级,1级)呼应优先级分别为0~7。

                                              第2组:2位用来装备抢占优先级,2位用来装备呼应优先级。即22=4种抢占优先级,22=4种呼应优先级。

                                              第3组:高3位用来装备抢占优先级,最低1位用来装备呼应优先级。即有8种抢占优先级,2种呼应2优先级。

                                              第4组:一切4位用来装备呼应优先级。即6种中止向量具有都不相同的呼应优先级。

                                              stm32中止的装备办法 第一步界说一个中止装备结构体变量

                                              NVIC_Init TypeDef NVIC_IinitStructure;

                                              第二步树立中止优先级装备组

                                              NVIC_Ppriority Group Config (NVIC_Priority Group_1);

                                              第三步对结构体变量初始化

                                              NVIC_IRQChannel中止向量

                                              NVIC_IRQChannelCmd使能/制止

                                              NVIC_IRQChannel PreempTIon Priority抢占优先级

                                              NVIC_IRQChannelSubPriority呼应优先级

                                              第四步 NVIC_Init ( NVIC_InitStructure)

                                                                责任编辑:fatee

                                                                (sinaere = window.sinaere || []).push({});
                                                                0