MG32F10x Standard Peripherals Firmware Library

NVIC IRQ Priority example

      *************** (C) COPYRIGHT 2020 - 2023 megawin Technology ***************
      * @file    NVIC/NVIC_IRQ_Priority/readme.txt
      * @author  megawin Application Team
      * @version V0.1.10
      * @date    05-January-2023
      * @brief   Description of the NVIC_IRQ_Priority example.
      ******************************************************************************
      * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
      * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE
      * TIME. AS A RESULT, MEGAWIN SHALL NOT BE HELD LIABLE FOR ANY DIRECT,
      * INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM
      * THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE
      * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
      ******************************************************************************

例程描述

这个例子演示了嵌套向量中断控制器（NVIC）的使用：
系统时钟工作在96Mhz，通过PLL配置产生。PLL时钟源是外部8Mhz晶振。APB1的分频比是1，APB2的分频比是1。
-配置2条Exit line（唤醒按钮Exit line和按键Exit line），在对应降沿上生成一个中断，并使用SysTick中断。
-这些中断用以下参数配置：
-唤醒按钮外线：
-Preemptionpriority = Preemptionpriorityvalue
-次优度 = 0
-按键外线：
-抢占优先级 = 0
-次优度 = 1
-SysTick处理程序：
-抢占优先权 =！抢占优先级值
-次优度 = 0
首先，抢占优先级值等于0，唤醒按钮Exti line的抢占优先级高于SysTick处理程序。
在键按钮Exti Line中断程序中，唤醒按钮Exti Line和Systick Preemption优先级颠倒。
在唤醒按钮Exti Line Interrupt例行程序中，设置了SysTick中断的挂起位，这将导致SysTick ISR仅在具有更高的抢占优先级时抢占唤醒按钮Exti Line ISR。
系统行为如下：
1）第一次出现按键Exti line中断时，SysTick抢占比唤醒按钮Exti line高。因此，当唤醒按钮Exti线路中断发生时，系统会执行Systick ISR，抢占发生的变量变为真，LED1开始切换。
2）当下一个键按钮Exti line中断发生时，SysTick抢占比唤醒按钮Exti line 低。
因此，当唤醒按钮Exti line中断发生时，Preemptionoccured变量变为0，LED1停止切换。
然后在无限循环中）重复此行为。

目录内容

- NVIC/NVIC_IRQ_Priority/NVIC_IRQ_Priority.uvprojx MDK5工程文件
- NVIC/NVIC_IRQ_Priority/NVIC_IRQ_Priority.uvoptx MDK5工程配置文件
- NVIC/NVIC_IRQ_Priority/JLinkSettings.ini Jlink配置文件
- NVIC/NVIC_IRQ_Priority/main.c 主程序

硬件和软件环境

- 硬件平台搭建
  - HSE 连接外部8MHz晶振
  - 管脚连接如下：
    - PA0 管脚连接到 wakeup key
    - PA1 管脚连接到 key2
    - PB14 管脚连接到 LED1

如何使用？

为了使程序工作，您必须执行以下操作 :

- 使用 MDK5 打开此例程文件夹中的 NVIC_IRQ_Priority.uvprojx 工程
- 重新编译该工程并下载到目标存储器中

- 运行此例程

  ###
  © COPYRIGHT 2020 - 2023 megawin Technology